【发布时间】:2011-03-26 03:35:49
【问题描述】:
我正在编写单元测试来验证数据库中的计算,并且有很多舍入和截断以及意味着有时数字略有偏差的东西。
在验证时,我发现很多时候事情会通过,但会说失败 - 例如,数字为 1,我得到 0.999999
我的意思是,我可以将所有内容四舍五入,但由于我使用了大量随机样本,最终我会得到这样的结果
10.5 10.4999999999
一个会舍入到 10,另一个会舍入到 11。
如果我需要一些近似正确的东西,我应该如何解决这个问题?
【问题讨论】:
-
比较浮点数,2012 版:randomascii.wordpress.com/2012/02/25/… - 不是 C# 版本,您将获得所需的一切
-
Math.Round() 从 Framework 1.1 开始提供重载,允许您指定位数,并且从 2.0 开始,您可以指定如何处理中点舍入。