为什么(0.406 * 10000.0)
返回4060.0000000000005
而不是4060.0
在 C# 中
我写了一个检查否的函数。双精度值及以下的小数位数是我正在使用的代码。上面句子中描述的问题发生在 value ofd is 0.406
和 values ofn is 4
和函数返回true
而不是false
我愿意使用替代解决方案。
public static bool HasMoreThanNDecimals(double d, int n)
{
return !(d * (double)Math.Pow(10, n) % 1 == 0);
}