【发布时间】:2013-08-20 11:29:57
【问题描述】:
C# 中的以下测试将失败
Assert.AreEqual<double>(10.0d, 16.1d - 6.1d);
问题似乎是一个浮点错误。
16.1d - 6.1d == 10.000000000000002
这让我在为使用double 的代码编写单元测试时头疼。有没有办法解决这个问题?
【问题讨论】:
-
是的,如果你需要精确,不要使用
double。使用decimal。并且不要按 3, 7, 11, 13, 17, 19, 23, ... 或它们的倍数除以:-)
标签: c# floating-point floating-point-precision