JS的尴尬之计算不精确问题,bignumber.js组件库可以解决这个问题

JS的尴尬之计算不精确问题,bignumber.js组件库可以解决这个问题

用Javascript,160万后面加18个零再除以1乘18个零,就变成了带小数,其他倒是正常

javascript的跟java不一样的
超过了整数范围自动转成浮点数的,尤其是除数运算
你可以看看javascript的手册
你要整数就需要用toFixed函数强制转换一下
alert( 0.1 + 0.2 ); // 0.30000000000000004

let sum = 0.1 + 0.2;
alert( sum.toFixed(2) ); // 0.30

弱类型的编程语言都有这问题的
你换成Typescript就不会有这问题了
Typescript是严格要求声明数据类型的,你普通的javascript代码很难通过编译的

我把他专程BigInt也一样

其实业内已经有相对成熟的组件库可以解决这个问题,这里给大家推荐 bignumber.js

JS的尴尬之计算不精确问题
https://mp.weixin.qq.com/s/maa9dfU3on0ypUFAzn9-BA
你看看上面这篇文章吧

posted @ 2023-08-31 05:23  大自然的流风  阅读(83)  评论(0编辑  收藏  举报