项目场景:

涉及小数点的计算

精度丢失原因看这里

解决

用decimal.js库,decimal.js是使用的二进制来计算的, 所以能解决js的精度问题。

安装和引入

执行命令npm i decimal.js --save安装。
官方API文档: 官方API文档

npm install --save decimal.js  // 安装
import Decimal from "decimal.js"  // 具体文件中引入
let a = 1
let b = 6
//加
let res = new Decimal(a).add(new Decimal(b))  //得到的值是一个Decimal对象 需要转换
let res1 = new Decimal(a).add(new Decimal(b)).toNumber() //结果转换成number
let res2 = new Decimal(a).add(new Decimal(b)).toString() //结果转换成string
//下面同上操作
//减
let res = new Decimal(a).sub(new Decimal(b))
//乘
let res = new Decimal(a).mul(new Decimal(b))
//除
let res = new Decimal(a).div(new Decimal(b))

另一种方式:
https://github.com/MikeMcl/decimal.js
下载zip文件,

引入文档使用即可

<!DOCTYPE html>
<html lang='en'>
<head><meta charset='utf-8' /><title>Testing decimal.js</title><style>body {font-family: monospace; font-size: 12px; line-height: 14px;}</style><script src='../decimal.js'></script>
</head>
<body>
<script>
let res = new Decimal(0.1).mul(new Decimal(0.2))console.log(res.toNumber() )</script>
</body>
</html>

用decimal.js库解决JavaScript中计算精度丢失的问题相关推荐

  1. 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题

    先看图,0.1+0.2不等于0.3 这个是JavaScript语言自身存在的一个问题.说到这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到Jav ...

  2. JS--使用第三方库解决浮点数(小数)计算不准确的问题

    原文网址:JS--使用第三方库解决浮点数(小数)计算不准确的问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决JavaScript在计算浮点数(小数)时不准确(精度丢失)的问题. 问题描述 ...

  3. 在html中解决数字四舍五入,JavaScript四舍五入及精度丢失问题

    在JS中使用数值计算时,经常会遇到未知的结果. 问题:用toFixed保留小数时,四舍五入规则不固定: 常见的解决思路:将小数放大为整数,进行四舍五入后,再缩小为小数. // 四舍五入(若要直接舍去, ...

  4. 计算价格, java中浮点数精度丢失的解决方案

    计算价格, java中浮点数精度丢失的解决方案 转载于:https://www.cnblogs.com/gloryhope/p/9896719.html

  5. [ JAVA编程 ] double类型计算精度丢失问题及解决方法

    [ JAVA编程 ] double类型计算精度丢失问题及解决方法 参考文章: (1)[ JAVA编程 ] double类型计算精度丢失问题及解决方法 (2)https://www.cnblogs.co ...

  6. Double计算精度丢失(金融入门知识点)

    Double计算精度丢失(金融入门知识点) 一.double精度丢失 二.为什么double会精度丢失 三.BigDecimal错误的用法 四.BigDecimal正确的用法 Double计算精度丢失 ...

  7. php 精度问题怎么解决,JavaScript 中精度问题以及解决方案

    JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示.其中符号位 S,指数位 E,尾数位M分别占了 1,11,52 位,并且在 ES5 规范 中指出了指数位E ...

  8. brain.js 时间序列_免费的Brain JS课程学习JavaScript中的神经网络

    brain.js 时间序列 The last few years, machine learning has gone from a promising technology to something ...

  9. 如何解决JavaScript中的根查找

    介绍 (Introduction) I've been wanting to write about this topic for a while now. I recently had the op ...

最新文章

  1. 重上热搜!北师大教授:给非洲留学生1年10万奖学金真的不算多!
  2. android开机自动运行程序
  3. python教程txt免费下载-python编程从入门到实践PDF电子书教程免费下载
  4. gdb 调试core 文件
  5. Ubuntu 下一个 vim 建立python 周围环境 构造
  6. 内存参数 计算_Spark统一内存管理的实现
  7. zabbix计算型监控项函数last_zabbix 自定义key类型之计算(Calculated items)-阿里云开发者社区...
  8. 新基建东风下,开发者这样抓住工业互联网风口!
  9. javaweb——总结
  10. 深入理解java内置锁(synchronized)和显式锁(ReentrantLock)
  11. 谈谈Ext JS组件之引子
  12. 砸金蛋vue插件_小程序商城系统插件代码该如何写?
  13. canvas动画科技园_16个富有创意的HTML5 Canvas动画特效集合
  14. 算法偏见是什么_人工智能中的偏见有什么作用?
  15. 电信光猫dns服务器修改,电信光猫自动获取的DNS被修改,肿么改回来?
  16. C语言问题,if条件里面按位取反
  17. php如何验证银行卡号,PHP效验银行卡卡号
  18. 心形代码HTML,赶紧发给你喜欢的人
  19. 乌合之众 -- 群体的意见和信念
  20. Win7安装VS2015报错“安装包丢失或损坏”的解决方法

热门文章

  1. unity webgl开发踩坑——从开发、发布到优化
  2. 2016 matlab 中文版软件和安装教程
  3. [C80]橙汁同人游戏 Acceleration of SUGURI 2 汉化补丁
  4. ADS1210的重要使用说明
  5. 想十年后混得好,别选这3种贬值型工作,结局越来越差,追悔莫及
  6. MySQL常见的创建索引的方式
  7. mysql 中alter_MySQL中alter用法大全
  8. linux查看当前操作系统内核和版本
  9. 从马帮到金蝶云星空通过接口配置打通数据
  10. PR抖音特效转场调色预设光效等900个特效工程文件使用教程