企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[danger] 0.1+0.2 == 0.3 返回值是true还是false ***** 参考: (1) 答案是false (2) 0.7*180也不是整数. 9007199254740992 + 1以后还等于原数 原因: 精度损失 ***** 解释: 在计算机中, 无论整数 / 小数, 都是以二进制, 进行存储和运算的 (1) 比如0.1的二进制和0.2的二进制, 这种浮点数都会出现无限循环的小数, 计算机硬件决定的 0.1 -> 二进制 (0011无限循环) ``` 0.0001100110011001100110011001100110011001100110011001101 ``` 0.2 -> 二进制 (0011无限循环) ``` 0.001100110011001100110011001100110011001100110011001101 ``` (2) 首先计算机最大存储在2的53次幂, 所以当二进制超出2的53次幂时就会扔掉后面多余部分, 保留近似的值, 所以相加结果也是近似的, 只不过有的近似正好能表示浮点数, 有的是近似值. ***** 处理办法: (1) 当进行小数运算时, 保留2位小数即可 >[warning]好东西 --- 统计了所有语言精度结果: [https://0.30000000000000004.com/](https://0.30000000000000004.com/)