我试图在Python中解决这个问题。 (10 ** 22 + 1)/ 89,给了我这样的回答:1.1235955056179775e + 20 于是我就用print语句来获得完整的数字 “%1.1F” %x和我得到这个号码: 112359550561797750784.0Python中的错误答案
这是错的。当你把这个答案与89相乘时,你没有得到10^22 + 1,但是你得到了9999999999999999819776.有点玩的&试验给了我正确答案112359550561797752809,当它乘以89得到确切的10^22 + 1.
我的问题,我做错了什么,我的答案的最后4位数是错的?
http://docs.python.org/2/tutorial/floatingpoint.html – Darek
如果你使用整数除法('//'而不是'/'),你会得到正确的答案 – mhlester
另外值得注意的是,'float(112359550561797752809)== 112359550561797752809'说错了! – mhlester