A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一、相加

1.js小数运算出现多位小数如何解决

查了一些资料,一是 JavaScript 浮点数计算的 Bug,另一个是和计算机最终转换成二进制计算有关系

0.1+0.2 == 0.3 //false
1
解决方法:

function addNum (num1, num2) {
var sq1,sq2,m;
try {
  sq1 = num1.toString().split(".")[1].length;
}
catch (e) {
  sq1 = 0;
}
try {
  sq2 = num2.toString().split(".")[1].length;
}
catch (e) {
  sq2 = 0;
}
m = Math.pow(10,Math.max(sq1, sq2));
return (num1 * m + num2 * m) / m;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
思路:

trycatch结构获取小数点位数sq1 = num1.toString().split(".")[1].length;,
m=10的n次方
两数乘以m再做加法,最后除以m
---------------------
【转载,仅作分享,侵删】
作者:juwuyu
原文:https://blog.csdn.net/weixin_28900307/article/details/88887487
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马