Math.Log 和轮数
Math.Log and round number
var result = Math.Log(1000, 10);
var diff = result - 3;
diff
大约是 -4x10^-16
.
据我了解,确切的值 3 可以存储在双精度数中:
3 (base 10) = 1.1x10^1 (base 2)
我错了吗?这是否意味着 Math.Log 不准确,至少对于值 1000?
我建议在这种情况下使用 Math.Log10
var result1 = Math.Log(1000, 10); //result1: 2.9999999999999996
var result2 = Math.Log10(1000); //result2: 3
var result = Math.Log(1000, 10);
var diff = result - 3;
diff
大约是 -4x10^-16
.
据我了解,确切的值 3 可以存储在双精度数中:
3 (base 10) = 1.1x10^1 (base 2)
我错了吗?这是否意味着 Math.Log 不准确,至少对于值 1000?
我建议在这种情况下使用 Math.Log10
var result1 = Math.Log(1000, 10); //result1: 2.9999999999999996
var result2 = Math.Log10(1000); //result2: 3