在這個例子中:python - 爲什麼long和float的乘法會產生小數類似的答案?
long_ten = 10**21
print(' type(long_ten):', type(long_ten))
print(' long_ten: {:52,f}'.format(long_ten))
tenth = 0.1
print(' type(tenth):', type(tenth))
print(' float(52f): {:52.52f}'.format(tenth))
float_res = tenth * long_ten
print('\n type(float_res):', type(float_res))
print(' float(52f): {:15.52f}'.format(float_res))
爲什麼在小數般的精度浮點數長和float結果乘以?
type(long_ten): <type 'long'>
long_ten: 1,000,000,000,000,000,000,000.000000
type(tenth): <type 'float'>
float(52f): 0.1000000000000000055511151231257827021181583404541016
type(float_res): <type 'float'>
float(52f): 100000000000000000000.0000000000000000000000000000000000000000000000000000
我希望的結果是:
100000000000000005551.1151231257827021181583404541016...
我明白爲什麼結果類型爲浮動 - B/C,它比長
注更寬 - 這是使用Python 2 (如果有的話)
第十位以相對精度丟失 – percusse