2010-01-06 37 views

回答

3

我認爲這將是更正確的說,那些是不同代表處的相同值的「5」。

在內部,保存(除非你實際上存儲字符串)的值是5。

當顯示值,即轉換爲屏幕的字符串表示,它可能被示出爲5,5.00或5.000但在內部,它仍然是5

的兩位小數不會出現(如果我可以這樣說),直到值輸出。

無法保存2位小數除非你使用一個字符串的數字。

+0

您也可以將「100×值」保存爲int – 2010-01-06 21:54:50

2

你有一種觀點認爲應該的Django執行它的Python對象有一定的精度,但decimal_places可能是更多的最大精度。我相信精度不會存儲在數據庫中,所以在任何情況下都會丟失。

在任何情況下,如果要強制執行精確,使用類似:Decimal(5).quantize(Decimal(10)**-DECIMAL_PLACES)

您可以在自定義django.db.models.DecimalField重載to_python方法,以確保返回與正確的精度的蟒蛇小數對象。

相關問題