1

众所周知,计算机内的浮点存储并不是精确的,本文的目的是为了警醒各位,在业务中,遇到浮点计算,一定要慎重,尽可能的使用整形来规避。

这次我们使用 1.38 * 10000这个式子来测试各个语言对于浮点数的处理。

NodeJs

clipboard.png

python2

clipboard.png

python3
clipboard.png

Golang

clipboard.png

C++

clipboard.png

Java

clipboard.png

PHP是世界上最好的语言
clipboard.png

对于金额计算,最好是使用整形来规避,比如系统内的精度设置为小数点后两位, 用户的余额 1.38 存到数据库内, 可以存成138,这样计算可以避免这个问题。但是整形也不是万能的,也有最大值,如果精度过大或者金额过大,整形也是撑不住的。


boywus
562 声望12 粉丝

引用和评论

0 条评论