谁能告诉我为什么下面的语句评估为false?
bool myBoolean = .6 + .3 + .1 == .1 + .3 + .6; // false
Run Code Online (Sandbox Code Playgroud)
它在Javascript和C++中做同样的事情.
铌.我正在回答这个问题,因为它也被标记为C++
由于浮点表示错误,在C++中,上面的结果为false,因为两个浮点数不完全相等.
例如,0.1的内部表示接近该值,但不完全相同

C#也是如此.
请允许我链接一个着名的文档(imho)每个处理浮点运算的程序员都应该阅读:每个计算机科学家应该知道的关于浮点运算的内容