我正在寫一個類來表示金錢,我遇到的一個問題是"1.50" != str(1.50)
。 str(1.50)等於1.5,突然出現POOF。 45美分已經消失,現在金額爲1美元和5美分。不是一美元和50美分。任何方式,我可以阻止str這樣做,或者我做錯了什麼?這是Python 2順便說一句。在python中保留尾隨零
8
A
回答
8
19
您可以使用字符串format
方法來指定你要多少位小數來表示:
>>> "{:.2f}".format(1.5)
'1.50'
但更好的辦法是使用了decimal module
爲代表的錢,因爲代表如果你正在做算術,二進制浮點數的問題會給你稍微的結果。該模塊的文檔中提到的一些問題特別是 - 最有趣的錢應用之一是:
>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
>>> from decimal import Decimal
>>> Decimal('.1') + Decimal('.1') + Decimal('.1') - Decimal('.3')
Decimal('0.0')
+0
或只是'「%.2f」%1.5' – grc 2013-03-06 03:01:46
1
x = 1.500000
print '%.2f' % x
print '{:.3f}'.format(x)
結果
1.50
1.500
相關問題
- 1. 保留刪除Newtonsoft.Json中的尾隨零
- 2. 用繪圖保留尾隨零
- 3. 保持尾隨零
- 4. 在Swift中保留.doubleValue()中的尾隨零
- 5. 回合一個數字並在oracle中保留尾隨零
- 6. 如何在Kendo UI的numericTextBox中保留尾隨零?
- 7. Math.Round不保留結尾零
- 8. 如何使用gtable中的解析並保留尾隨零
- 9. 使用PHP中的NumberFormatter保留尾隨零
- 10. 保留尾隨空格Sybase
- 11. 在python中舍入一個數字,但保留結尾零
- 12. 當從JObject轉換爲XDocument時需要保留尾隨零
- 13. R {base}以科學記數法保留尾隨零
- 14. 使用逗號格式化小數,保留尾隨零
- 15. XSLT:SHOW尾隨零
- 16. Python - 如何在返回字符串時保留尾隨空格?
- 17. d3.format將不會保留結尾零
- 18. 在Python中保留隨機名
- 19. 在QString中打印尾隨零
- 20. 在因子中查找尾隨零
- 21. 在OpenCL中計算尾隨零
- 22. 如何將尾隨零保存在列表或np.array中?
- 23. 如何使用Math.Round將十進制值舍入,但保留尾隨零
- 24. NSNumberFormatter刪除尾隨零
- 25. int數組尾隨零
- 26. Decimal.GetHashCode取決於尾隨零
- 27. jqplot沒有尾隨零
- 28. 螞蟻添加尾隨零
- 29. MySQL刪除尾隨零
- 30. 從雙值中刪除尾隨零
這說明了一個重要的觀點:1美元5美分是**不等於,例如1.5磅的體重。 1.5磅和1.50磅是完全一樣的東西,你很少關心1.5磅和1.50001磅之間的差異。這是因爲「磅」是測量*連續*數量(重量),而「美分」是測量*離散*數量。 – 2013-03-06 03:07:00
不好的班級設計再次敲擊... – 2015-11-09 03:38:13