我知道为什么0.1 + 0.2 !== 0.3
,因为0.1无法在二进制浮点表示中精确表示,但为什么JavaScript中的0.1 + 0.3 === 0.4
?我认为0.1,0.3两者都无法准确表示,为什么0.1 + 0.3
将完全等于0.4?我在C中测试了这个,我得到了0.40000000000000002
,这个结果就是我想要的,这是我的C代码
#include "stdio.h"
int main(){
double a = 0.1 + 0.3;
printf( "%.17lf", a );
}
非常感谢你!