blog
blog copied to clipboard
怎样解决JS浮点数精度问题?
前言
遵循 IEEE 754 标准的语言都会存在这个问题
怎样解决JS浮点数精度问题?
精度损失可能出现在进制转化和对阶运算过程中
1. 将数字转为整数
function add(num1, num2) {
const num1Digits = (num1.toString().split('.')[1] || '').length;
const num2Digits = (num2.toString().split('.')[1] || '').length;
const baseNum = Math.pow(10, Math.max(num1Digits, num2Digits));
return (num1 * baseNum + num2 * baseNum) / baseNum;
}
优点: 简单
缺陷: 对大数支持的不够好