将2位小数点除以结果四舍五入

时间:2013-10-30 02:55:29

标签: .net vb.net rounding-error rounding

我对正在开发的程序的结果有疑问。

例如,如果im的数量为8672.59,并且我想将其除以2,则结果应为4336.295。问题是如何将它转换为2位小数点,并将结果四舍五入,以便在添加2个数字时仍能获得正确的数量。

实施例。

8672.59 / 2 = 4336.295

如果四舍五入到2位数的数字点,结果为 4336.30

如何将其转换为2位小数点而不进行四舍五入,这样如果它乘以2,结果将与 8672.59 相同而不是 8672.60 < / p>

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您希望此操作可逆,则需要存储足够的信息以退出计算。因此,如果您只将8672.59 / 2存储到两位小数,则不能通过乘以2得到8672.59。您将获得8672.58或8672.60,具体取决于您是存储4336.29还是4336.30。

现在,您可以将数字存储到三个小数位(或您需要的任何精度)并仅显示其中两个。只需将存储的数字乘以2即可得到原始数字。

答案 1 :(得分:1)

从整体中减去舍入结果。

Dim Total as Double = 8672.59
Dim OneHalf = Math.Round(Total/2, 2)
Dim SecondHalf = Total - OneHalf

在您的示例中,总计= 8672.59,因此OneHalf = 4336.30 (四舍五入)

SecondHalf = 8672.59 - 4336.30 = 4336.29