为什么(0.406 * 10000.0)
在C#
4060.0000000000005
而不是4060.0
我写了一个检查不的功能。双值及以下的小数是我正在使用的代码。当d is 0.406
的值和n is 4
的值以及函数返回true
而不是false
我愿意使用备用解决方案。
public static bool HasMoreThanNDecimals(double d, int n)
{
return !(d * (double)Math.Pow(10, n) % 1 == 0);
}
答案 0 :(得分:2)