0

我如何在 vb.net 中四舍五入到最接近的 5000。不能使用 math.round 因为它给出了错误。我正在微软 exel 中寻找类似 mround() 的东西。

  Math.round(43333 * 34, 5000)
4

1 回答 1

3

尝试

Math.Round(43000 / 5000) * 5000

如:

For Each x In New Single() {2499, 2501, 7000, 21000, 43000, 99000}
    Console.WriteLine(String.Format( _
            "Rounding {0,7:N0} to the nearest 5,000: {1,7:N0}", _
            x, _
            Math.Round(x / 5000) * 5000) _
        )
Next

Console.ReadKey(True)

输出:

Rounding   2,499 to the nearest 5,000:       0
Rounding   2,501 to the nearest 5,000:   5,000
Rounding   7,000 to the nearest 5,000:   5,000
Rounding  21,000 to the nearest 5,000:  20,000
Rounding  43,000 to the nearest 5,000:  45,000
Rounding  99,000 to the nearest 5,000: 100,000

我要补充一点,默认的舍入行为Math.RoundMidpointRounding.ToEven文档描述为“当一个数字介于两个其他数字之间时,它会向最接近的偶数四舍五入。 ”这意味着0.5可能会四舍五入01根据情况(其中是处理统计数据时的期望行为)。要更改此行为,您可以将MidpointRounding.AwayFromZero其作为第二个参数传递,该参数的行为将与您在学校所教的一样(0.5始终舍入为1-0.5始终舍入为-1)。

于 2012-10-15T21:47:05.433 回答