最近在Python中使用round()函数取整然后后处理乘以100时,发现了一个奇怪的问题,如下:
>>> round(61 / 154 * 100, 2)
39.61
>>>
>>> (round(61 / 154, 2) )* 100
40.0
>>>
>>> round(61 / 54, 2)
1.13
>>> (round(61 / 54, 2) )* 100
112.99999999999999
>>>
>>> round(61 / 54 * 100, 2)
112.96
可以看出round(61 / 54, 2) 可以保留2位小数,结果为1.13,但是(round(61 / 54, 2) )* 100的结果却为112.99999999999999,这明显不是我们想要的结果形式,此时建议使用round(61 / 54 * 100, 2)这种形式,也就是把后处理(比如乘以100)放到内部。