如何比较js 浮点数
2020-02-03 23:11
429 查看
浮点数的定义,非整数的Number类型无法用 ==(===也不行) 来比较,这就是为什么在JavaScript中,0.1+0.2不能=0.3:
console.log( 0.1 + 0.2 == 0.3);
这里输出的结果是false,说明两边不相等的,这是浮点运算的特点,浮点数运算的精度问题导致等式左右的结果并不是严格相等,而是相差了个微小的值。
所以实际上,这里错误的不是结论,而是比较的方法,正确的比较方法是使用JavaScript提供的最小精度值:
console.log( Math.abs(0.1 + 0.2 - 0.3) <= Number.EPSILON);
检查等式左右两边差的绝对值是否小于最小精度,才是正确的比较浮点数的方法。这段代码结果就是 true 了。
在开发中也遇到这种情况的问题,根据返回值显示出百分数。
后端的返回值是 value : 0.29;
这是在 vue 中使用elemeng-ui 将数值格式化的一个方法,返回值是 0.29 ,如果不做除以1000的处理,显示的值不是29%;
percentFormat (row, column) { var percent = row[column.property]; if(!percent){ // 如果没有值或值为0 return 0 + "%"; } percent = (percent * 1000)/10 + "%"; return percent; },
转载于:https://www.cnblogs.com/lisaShare/p/10999696.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- js如何判断输入是否为正整数、浮点数等数字的函数
- 如何让一个浮点数和0比较 或者(和bool值比较,或者跟指针比较)
- 如何比较两个浮点数是否相等?
- js中如何判断两个浮点数是否相等
- js如何计算浮点数
- js如何判断输入是否为正整数、浮点数等数字的函数
- 如何写JS数组sort的比较函数
- 如何写JS数组sort的比较函数
- 在js中如何比较两个时间字符串的大小
- js如何判断输入是否为正整数、浮点数等数字的函数
- js如何获取键盘输入的值来比较两次输入密码是否一样
- js是如何进行比较运算的
- JS中比较的数值如何比较大小
- JS中如何比较两个Json对象是否相等
- JS中如何比较两个Json对象是否相等实例代码
- js如何比较两个时间的秒数
- 如何引用js比较的安全
- 分享下如何写JS数组sort的比较函数
- JS如何判断安卓还是iOS 一种比较被认同的方式