首页 > 解决方案 > 舍入双不正确的输出

问题描述

我正在尝试对数字进行四舍五入,但预期的输出不正确。这是我尝试过的:

 var percent = Math.Round(1.13451, 0);

上面的返回值1,但如果第三个数字小于 5,我希望它返回1.13。如果它 >= 5(第三个数字),我想得到类似1.135. 我确信这是我想念的简单的东西,但不确定。

标签: c#

解决方案


看来您正在引起混淆,因为您使用“舍入”一词来描述实际上不是舍入的操作。

我再次阅读了您的描述,我可以看到您正在尝试将您的值截断为不超过该值的 0.005 的最高离散增量。

您可以按如下方式执行此操作:

var percent = Math.Floor(200.0 * x) / 200.0;

或者,如果你想让发生的事情更明显,这本质上是一样的:

var increment = 0.005
var percent = Math.Floor(x / increment) * increment;

推荐阅读