原文网址:JS--使用第三方库解决浮点数(小数)计算不准确的问题_IT利刃出鞘的博客-CSDN博客

简介

本文介绍如何解决JavaScript在计算浮点数(小数)时不准确(精度丢失)的问题。

问题描述

JS计算小数是不准确的

实例:

问题大全

// 加法
0.1 + 0.2 = 0.30000000000000004
0.2 + 0.4 = 0.6000000000000001// 减法
1.5 - 1.2 = 0.30000000000000004
0.3 - 0.2 = 0.09999999999999998// 乘法
19.9 * 100 = 1989.9999999999998
9.7 * 100 = 969.9999999999999// 除法
0.3 / 0.1 = 2.9999999999999996
0.69 / 10 = 0.06899999999999999// 比较0.1 + 0.2 === 0.3 // false(0.3 - 0.2) === (0.2 - 0.1) // false

JS的toFixed等也有问题

上述问题,有人可能想:使用JS的toFixed方法即可解决。但实际上,toFixed也有问题具体如下:

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num)。toFixed()四舍五入的规则与数学中的规则不同,其使用的是银行家舍入规则,银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。具体规则如下:简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

实例(谷歌浏览器)

1.35.toFixed(1)    // 1.4 正确
1.335.toFixed(2)   // 1.33  错误
1.3335.toFixed(3)  // 1.333 错误
1.33335.toFixed(4) // 1.3334 正确
1.333335.toFixed(5)  // 1.33333 错误
1.3333335.toFixed(6) // 1.333333 错误

解决方案:用第三方库

以下三方库越往下占空间越大。

number-precision

见:number-precision--使用/实例_IT利刃出鞘的博客-CSDN博客

big.js

见:big.js--使用/实例_IT利刃出鞘的博客-CSDN博客

bignumber.js

见:bignumber.js--使用/实例_IT利刃出鞘的博客-CSDN博客

decimal.js

见:decimal.js--使用/实例_IT利刃出鞘的博客-CSDN博客

mathjs

见:mathjs--使用/实例_IT利刃出鞘的博客-CSDN博客

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

  1. 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    在知乎上上看到如下问题: 浮点数精度问题的前世今生? 1.该问题出现的原因 ? 2.为何其他编程语言,比如java中可能没有js那么明显 3.大家在项目中踩过浮点数精度的坑? 4.最后采用哪些方案规避 ...

  2. python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...

    浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源 无论在java python javaScript里面都存在 1+ 2!== 3 问题,这个问题的产生根源在于计算存储数字是二进制,对无限循环小 ...

  3. c# 取余数 浮点数_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    在知乎上上看到如下问题: 浮点数精度问题的前世今生? 1.该问题出现的原因 ? 2.为何其他编程语言,比如java中可能没有js那么明显 3.大家在项目中踩过浮点数精度的坑? 4.最后采用哪些方案规避 ...

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

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

  5. 解决JS浮点数(小数)计算加减乘除的BUG

    2019独角兽企业重金招聘Python工程师标准>>> //浮点数减法运算function FloatSub(arg1,arg2){var r1,r2,m,n;try{r1=arg1 ...

  6. 用decimal.js库解决JavaScript中计算精度丢失的问题

    项目场景: 涉及小数点的计算 精度丢失原因看这里 解决 用decimal.js库,decimal.js是使用的二进制来计算的, 所以能解决js的精度问题. 安装和引入 执行命令npm i decima ...

  7. pod升级以及更新不到最新的第三方库解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 最近因为大量的第三个库适配HTTPS,我在更新中发现两个问题,写出来分享给大家. 1.cocoapods版本升级到最新版: 2 ...

  8. Python使用PuLP第三方库解决线性规划问题

    假设我们考虑投资两种证券X和Y.若投资X证券的数量为xxx,投资Y证券的数量为yyy, 试求3x+2y3x+2y3x+2y的最大值.限制条件如下: 投资2倍的X证券数量与投资Y证券数量之和不超过100 ...

  9. python批量安装第三方库_使用Python批量安装第三方库

    Python的很多功能通过第三方库实现,99%的第三方库可以通过Python自带的pip方法进行自动下载和安装.然而Python有几十万个第三方库,最常用的也有几十个.想要一次性地安装几十个常用的第三 ...

最新文章

  1. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
  2. Git搭建自己的网站服务器(Linux)
  3. [Spring cloud 一步步实现广告系统] 13. 索引服务编码实现
  4. 树莓派应用实例3:环境光照强度测量
  5. float取整数部分_一步一步学Python3(小学生也适用) 第六篇: 变量及整数(int)类型...
  6. Coursera课程Python for everyone:Quiz: Networks and Sockets
  7. [云炬创业管理笔记]第四章把握创业机会测试5
  8. Django扩展自定义manage命令
  9. python 列表自定义排序_自定义排序的Python列表
  10. 逆天!百度AI音箱重磅升级:最大梦想实现
  11. paip.接入支付接口功能流程总结
  12. 数学史思维导图_思维导图话科学史:图说数学
  13. Win7安装CENTOS
  14. 彩色证件照片常用的红色、蓝色背景颜色值
  15. 项目管理第十二章项目采购管理
  16. golang-命令源码文件
  17. PS对图片的基本处理
  18. VMware安装ubuntu kylin
  19. C++ AVL树(补充)
  20. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)

热门文章

  1. 基于小样本量的水下图像识别
  2. 优酷在计算机上无法联网,优酷视频看不了怎么办?
  3. 除法运算以及比较大小
  4. 火狐浏览器关闭百度热榜(屏蔽网站特定元素)
  5. 高仿钉钉和小米的日历控件
  6. 计算机语言表达爱情,各种语言用数字表达爱情的
  7. python把一堆图片分成n份_用Python实现将一张图片分成9宫格的示例
  8. 【解决方法】hexo g 报错 OperationalError: EPERM: operation not permitted, unlink ...
  9. 客户体验的全景分析:从了解到行动
  10. 信息学奥赛一本通c++版在线评测系统_OPPO Reno3 Pro评测:迄今为止最“性感”的5G手机...