比较浮点数的正确方法
程序员文章站
2024-01-30 10:59:52
...
非整数的 Number 类型无法用 (= 也不行) 来比较,例如:
console.log( 0.1 + 0.2 == 0.3);
这里输出的结果是 false,说明两边不相等的,这是浮点运算的特点,也是很多同学疑惑的来源,浮点数运算的精度问题导致等式左右的结果并不是严格相等,而是相差了个微小的值。
所以实际上,这里错误的不是结论,而是比较的方法,正确的比较方法是使用 JavaScript 提供的最小精度值:
console.log( Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON);
检查等式左右两边差的绝对值是否小于最小精度,才是正确的比较浮点数的方法。这段代码结果就是 true 了。
上一篇: JS检测数据类型之typeof
下一篇: 在html5中嵌入视频的方法教程
推荐阅读
-
比较浮点数的正确方法
-
为啥php的session里用了一种比较奇怪的serialize方法?
-
error LNK2001: 无法解析的外部符号 ___CrtDbgReportW 的正确解决方法
-
Android 读取文件的正确打开方法
-
php比较相似字符串的方法_PHP
-
几种比较厉害的伪原创方法
-
详细介绍硬盘的维护与正确使用的方法
-
Thinkphp restful 写法,可以使用curl 请求到对应的方法,但是android无法正确请求到指定的方法。
-
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法,phpstrncmp_PHP教程
-
防止Access数据库被非法下载的方法比较