四舍五入vb.net

时间:2013-09-20 08:17:53

标签: vb.net

我对VB.Net中正在进行的程序中的数字格式有疑问

我的问题是,我如何通过裁决将其从VB.Net中的非十进制数字四舍五入 每数百位数:

在两个场景中

*如果百位数等于或低于499(a <= 499)将变为500:

示例:

从1488年开始 - &gt; 1500 从1,000,320 ----&gt; 1000500

*如果百位数等于或高于500(a> = 500)将达到1,000:

示例:

从1500 - &gt; 2000

从1,000,700 ---&gt; 1001000

我使用VB6风格,但它不再工作了,

请帮帮我。

谢谢

2 个答案:

答案 0 :(得分:0)

这样做

// Pass value to round off here
private int ValueRoundOff(int value)
{
    int returnValue = 0;
    bool isHandling = true;
    for (int it = 500; isHandling; it += 500)
       {
           // While it is handling it will check if the value you passed is less 
           // than to 500, if not it will add another 500 to make it 1000 
           // and check again
           if (value < it)
           {
              returnValue = it;
              isHandling = false;
           }
       }
    return returnValue;
}

答案 1 :(得分: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