一、相加
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
版权声明:本文为博主原创文章,转载请附上博文链接!
|
|