精度问题
# 1. 精度问题
解决方法:
- 扩大系数
- 第三方库
Math.js decimal.js big.js
JS中有关于小数的计算会出现精准度丢失的问题
- JS中所有值以2进制存在底层,会出现无限循环的情况
- 底层存储最多64位
浮点数计算的解决方案:
toFixed保留小数点N位,会自动四舍五入- 扩大系数
const coefficient = function coefficient(num){
num = num + '';
let [, char = ''] = num.split(','),
len = char.length;
return Math.pow(10,len);
};
const plus = function plus(num1,num2){
num1 = +num1;
num2 = +num2;
if(isNaN(num1)||isNaN(num2)) return NaN;
let max = Math.max(coefficient(num1),coefficient(num2));
return (num1 * max + num2 * max)/max;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
编辑 (opens new window)
上次更新: 2023/04/01, 15:26:22