今天QA报了一个bug,把用户输入的收益从单位元转换分的时候,对于1111.11元的用例,转化错误了,变成了111110分。用于转换的函数如下: return $intTmp; 刚开始试了几个其它数值,转化正常,但是对于1111.11就是错误,用var_dump输出round($dblValue, 2) * 100的结果,显示为float(111111),看着也没有问题,一时陷入迷茫。 后求助于同事,提示用printf("%.20f", round($dblValue, 2) * 100)输出结果看看,这才发现输出为111110.99999999998544808477,到此终于明白错误的原因了。 |
浮点数转整数时出现的一个问题
最新推荐文章于 2022-01-21 14:22:38 发布