javascript中浮点数相加的一些细节
来源:互联网 发布:从事数据分析看什么书 编辑:程序博客网 时间:2024/05/17 18:41
问题来源:有时候我们在对小数进行相加时会出现小数部分的无限循环,得到相加的结果并不准确。这是因为JavaScript 中的 number 浮点型是一种二进制表示法,可以精确地表示分数,但是,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字,会有舍入误差;
比如:
console.log(0.1+0.2);
输出结果为:0.30000000000000004
console.log(0.31+0.5111);
输出结果为: 0.8210999999999999
解决办法:
function add(num1,num2)
{
let a1,a2,m;
a1 = (''+num1).split('.')[1].length;
a2 = (''+num2).split('.')[1].length;
m = Math.pow(10,Math.max(a1,a2));
return(num1*m + num2*m)/m;
}
console.log(add(0.1,0.2));
console.log(add(0.31,0.5111));
输出结果: 0.3
输出结果: 0.8211
0 0
- javascript中浮点数相加的一些细节
- Javascript 浮点数相加精度问题
- JS中浮点数相加问题
- javascript 中浮点数乘法的问题
- JavaScript中Date的一些细节
- javaScript中浮点数计算
- 浮点数有更多的细节
- javascript中可处理的浮点数的最高精度(和小数的一些小特性)
- 浮点数的一些认识
- PHP中处理浮点数的一些方法记录
- JavaScript中浮点数的保留小数位数的问题
- javascript浮点数的计算
- js浮点数,整数相加
- HDOJ1753 大浮点数相加
- 在javascript中解决浮点数加减的问题
- 关于JavaScript中浮点数比较的问题
- 关于任意长浮点数相加的小程序
- (转)指数不同的浮点数相加
- JavaScript趣题:哪些在里面?
- 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
- js 控制 后退一个页面 前进一个页面
- MySQL存储过程
- 端到端深度学习在自动驾驶汽车上的应用
- javascript中浮点数相加的一些细节
- c3p0数据库连接池的使用详解
- iOS7新技术:如何使用Multipeer Connectivity
- 直方图均衡化算法原理与实现
- 【NOIP】普及组 2014 问题求解
- Android开发环境搭建
- Java学习笔记之对象传值和引用总结
- 字符串的全排列问题
- Redis探索之旅(1)- Redis初识