在vb.net中进行数学舍入?

问题描述 投票:-1回答:3

我有一个内置函数在vb.net中进行适当的数学舍入?

例如,以下两个函数都返回14.00,但它们应返回14.01:

Math.Round(14.004999, 2, MidpointRounding.AwayFromZero)
Decimal.Round(14.004999, 2, MidpointRounding.AwayFromZero)

有没有其他方法可以进行适当的数学舍入?

vb.net financial calc
3个回答
1
投票

这将产生预期的结果,但......

Dim somedata As Double = 14.004999
Dim outd As Double

outd = Math.Round(somedata, 3)
outd = Math.Round(outd, 2, MidpointRounding.AwayFromZero)

0
投票

将1/2美分加到计算中:

Dim x As Decimal = 14.004999D

Dim y as Decimal = Decimal.Round(x + 0.005D, 2, System.MidpointRounding.AwayFromZero)

一定要在金融数学中使用Decimal类型而不是Double类型。


-2
投票

你想要的是天花板,而不是四舍五入。

Dim d As Decimal = 14.004999
Dim r As Decimal = Math.Ceiling(d * 100D) / 100D
© www.soinside.com 2019 - 2024. All rights reserved.