下面的代码很奇怪。当我调试它时,我可以看到“结果”和“圆形”都是5,但输出是“假”。有什么想法吗?
double result = Math.Log (243, 3); // 5
double round = Math.Round (result); // 5
Console.WriteLine (result == round);
答案 0 :(得分:0)
浮点与等号运算符的比较可能会在舍入值时失去精度。你可以通过比较 epsilon 的差异来解决这个问题。像这样使用Tolerance
:
Console.WriteLine(Math.Abs(result - round) < 0.0000001); // True