0

VB.Net で実行中のプログラムの数値の形式に問題があります。

私の質問は、数の 100 桁ごとの決定によって、VB.Net の非 10 進数を四捨五入するにはどうすればよいかということです。

2 つのシナリオで

*100 桁目が 499 以下の場合 (a <= 499) は 500 になります。

例:

1488 年から --> 1500 1,000,320 から --> 1,000,500

*100 桁目が 500 以上の場合 (a >= 500) は 1,000 になります。

例:

1500年から --> 2000年

1,000,700 から ---> 1,001,000

VB6スタイルで使っていたのですが、動かなくなってしまいました。

私を助けてください。

ありがとうございました

4

2 に答える 2

0

質問の例を考えると:

Private Function CustomRound(input As Integer)

    Dim roundUpTo500 = (input Mod 1000) < 500

    If (roundUpTo500) Then
        Return Math.Floor(input / 1000) * 1000 + 500
    Else
        Return Math.Round(input / 1000) * 1000
    End If

End Function

次の結果が得られます。

  CustomRound(1488)    -> 1500
  CustomRound(1500)    -> 2000
  CustomRound(1000320) -> 1000500
  CustomRound(1000700) -> 1001000
于 2013-09-20T09:01:55.063 に答える