下面是我看到的實際問題。請注意,round()似乎並沒有成功。
這裏是我的代碼:
t0=time.time()
# stuff
t1=time.time()
perfdat={'et1' : round(t1-t0,6), 'et2': '%.6f'%(t1-t0)}
而且字典和JSON輸出,分別爲:
{'et2': '0.010214', 'et1': 0.010214000000000001}
{"et2":"0.010214","et1":0.010214000000000001}
(完更新)
我有一個浮點值有很多額外的精度數字,我不需要。格式化json字符串時,有沒有辦法截斷這些數字?
我可以得到我需要的截斷,如果我將該值格式化爲一個字符串,但我想傳遞該值作爲(截斷)數。
import json
v=2.030000002
json.dumps({'x':v}) # would like to just have 2.030
'{"x": 2.030000002}'
s= '%.3f' % (v) # like this, but not as a string
json.dumps({'x' : s})
'{"x": "2.030"}'
你需要尾隨0? –
我無法想象爲什麼尾隨零將很重要。實際上,每個JSON庫都會將其解碼爲浮點值,這會丟失該信息。 –
@ColonelThirtyTwo我同意,但另一方面,我也無法想象一個10萬用戶無法在谷歌或其他地方找到'round()'函數,因爲它之前已經詢問過這個話題 –