带+运算符的C#奇怪行为

joh*_*doe 5 javascript c# c++

谁能告诉我为什么下面的语句评估为false?

bool myBoolean = .6 + .3 + .1 == .1 + .3 + .6; // false
Run Code Online (Sandbox Code Playgroud)

它在Javascript和C++中做同样的事情.

Mar*_* A. 7

铌.我正在回答这个问题,因为它也被标记为C++

由于浮点表示错误,在C++中,上面的结果为false,因为两个浮点数不完全相等.

例如,0.1的内部表示接近该值,但不完全相同

在此输入图像描述

C#也是如此.

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