当前位置: 代码网 > it编程>编程语言>Javascript > 保姆级Decimal.js使用教程(解决js精度问题)

保姆级Decimal.js使用教程(解决js精度问题)

2024年05月26日 Javascript 我要评论
精度问题控制台图样如果银行的业务你这样做,不知道要损失多少钱,这样是不行的,计算的不准确是需要背锅的,我们给后端去做吧,其实我们前端也是可以做的,引入decimal.js01.引入decimal.js

精度问题控制台图样

如果银行的业务你这样做,不知道要损失多少钱,这样是不行的,计算的不准确是需要背锅的,我们给后端去做吧,其实我们前端也是可以做的,引入decimal.js

01.引入decimal.js

decimal.js是使用的二进制来计算的,所以可以更好地实现格化式数学运算,对数字进行高精度处理;使用decimal类型处理数据可以保证数据计算更为精确,还可以节省储存空间。

$ npm install --save decimal.js
/**  node.js  */
var decimal = require('decimal.js')
 
/** es6 方式 */
import { decimal } from 'decimal.js'

02.使用

<template>
  <div>
    test
  </div>
</template>
<script>

import decimal from 'decimal.js'

export default {
  created() {
    console.log('打印8.12*100的结果', 8.12*100)
    console.log('打印9.12*100的结果', 9.12*100)

    let c = new decimal(8.12).mul(new decimal(100))
    let d = new decimal(9.12).mul(new decimal(100))
    console.log('c', c)
    console.log('d', d)
  }
}
</script>

加减乘除全上

 const a = 9.98;
 const b = 8.03;
 
 // 加法
 let c = new decimal(a).add(new decimal(b)) 
 
 // 减法
 let d = new decimal(a).sub(new decimal(b))
 
 // 乘法
 let e = new decimal(a).mul(new decimal(b))
    
 // 除法
 let f = new decimal(a).div(new decimal(b))

附:vue项目完整例子

下面是一个完整的示例,展示了如何在vue项目中使用decimal.js库进行高精度计算:

<template>
  <div>
    <p>0.1 + 0.2 = {{ result }}</p>
  </div>
</template>

<script>
import { decimal } from 'decimal.js';

export default {
  data() {
    return {
      result: null,
    };
  },
  mounted() {
    const num1 = new decimal(0.1);
    const num2 = new decimal('0.2');
    const sum = num1.plus(num2);
    this.result = sum.tonumber();
  },
};
</script>

在上述示例中,我们通过decimal类创建了两个decimal对象,并使用plus()方法执行加法运算。最后,通过tonumber()方法将结果转换为javascript原生的number类型,并绑定到vue组件的result数据属性上,以在模板中显示计算结果。

总结 

到此这篇关于保姆级decimal.js使用的文章就介绍到这了,更多相关decimal.js解决精度问题内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com