你不知道的计算方法

310 阅读1分钟

先看结果

众所周知 前端js 计算的时候 会出现

console.log(44.22 * 10000.22); // 442209.72839999996 

小数位不精准的情况 导致计算数值 导致我们在项目中计算错误的问题 由此我不希望学习前端的小伙伴们 因为这种事情而困恼 所以:

以下方法为你解决计算中出现的一系列问题

Math.fround
console.log(44.22 * 10000.22); // 442209.72839999996
console.log(Math.fround(44.22 * 10000.22)); // 442209.71875
Number.prototype.toFixed();
console.log(Math.fround(44.22 * 10000.22).toFixed(2));  // 442209.72
parseFloat
console.log(parseFloat(442209.718750000000000)); //442209.71875
parseFloat && Math.fround && toFixed 方法结合使用
console.log(parseFloat(Math.fround(44.22 * 10000.22).toFixed(2)) // 442209.72
方法封装使用
/**
* 
* @param { number } calculatedValue 计算的结果值 默认为 0
* @param { number } fixed toFixed 默认为 2
* @returns number 过滤后的结果
*/
function calculate (calculatedValue = 0 , fixed = 2) {
    return parseFloat(Math.fround(calculatedValue).toFixed(fixed));
}
总结
  • 该方法是通过不断尝试和艰苦的计算得到的方法希望可以帮助到各位前端小伙伴;
  • 如使用中遇到问题 可私信;