Monthly Archives: 十一月 2017

其他

39.8

项目里算价钱,发现一个诡异的bug:商品库有个东西,价格是39.80元,到这边库里转化成“分”,成了3979
弱类型语言,有时就是这么无奈,实测发现,对于php,计算:
$p = 39.8
echo (int)$p*100
哈哈,得到的果然是3979
修改$p值、修改乘数为10或1000,都正常,就是39.8和100的组合会出问题
拿同样是弱类型语言的js做了下测试大家来欣赏一下:
39.8*100 = 3979.9999999999995
39.81*100 = 3981
39.800000*100 = 3979.9999999999995
39.8*10 = 398
39.8*100000 = 979999.9999999995
39.8*1000 = 39800
39.9*100 = 3990
计算机里浮点数计算,有时还是很不靠谱的,以后牵扯到这类逻辑的时候,一定要注意了