js 双精度浮点数

一、怎样将一个数据转成浮点数  https://www.zhihu.com/question/21711083

7707397-a94799e9e1732a9e.png

二、js 的 Number

在 JavaScript 中整数和浮点数都属于 Number 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此。


7707397-3feabe7229b2336c.png

三、造成哪些问题?

1、小数计算精度丢失,比如 0.1+0.2 不等于 0.3

2、整数最大范围

整数是按最大54位来算最大(253 - 1,Number.MAX_SAFE_INTEGER,9007199254740991) 和最小(-(253 - 1),Number.MIN_SAFE_INTEGER,-9007199254740991) 安全整数范围的。所以只要超过这个范围,就会存在被舍去的精度问题。


四、解决办法

开源的库、bigInt、

0.1+0.2-0.3     // 5.551115123125783e-17

5.551115123125783e-17.toFixed(20)      //   '0.00000000000000005551'

5.551115123125783e-17<Number.EPSILON*Math.pow(2,2)    // true

转载于:https://www.jianshu.com/p/e071e1da8dfd

猜你喜欢

转载自blog.csdn.net/weixin_34082789/article/details/91060349