2015-09-15 69 views
2

基本上我正在考慮浮點數或字符串。什麼是JSON API中最好的格式/類型

字符串:

"10.00" 
"10.05" 
"10.50" 
"1,000" 

浮點數

10 
10.05 
10.5 
1000 

我喜歡絃樂的格式,而且有可能與浮點數精度有限的問題。

你會選擇什麼,爲什麼?

+0

取決於你想要做什麼 – Steve

回答

-4

使用花車。金錢是一個數字,因此使用數字來表示它會更有意義。而且精度不應該是一個問題,因爲這意味着將不會有$ 0.00間的任何四捨五入問題「浮點數使用C中的雙通常實行」 - $ 0.99

資源:https://docs.python.org/2/library/stdtypes.html

5

你永遠不應該使用浮動/雙錢。原因是他們在處理金錢時沒有做到你想要的。

簡單的例子,我得到10美分,然後我得到另一個10美分,然後我買了20美分的東西。剩下多少錢? (使用交互式Python提示符來說明)

>>> 0.1 + 0.1 - 0.2 == 0 
True 

現在讓我們嘗試用3次助攻同樣的事情,買了30美分的東西:

>>> 0.1 + 0.1 + 0.1 - 0.3 == 0 
False 

的原因當然是浮動/ double類型不能完全代表所有值。當你操縱這些數字時,你可能會積累這些錯誤,以便它真正變得明顯。所有使用float/double的編程語言在某種程度上都存在這個問題。

您最終將通過實現稱爲「isAlmostZero」和「isCloseTo」或其他一些愚蠢功能的函數修復錯誤。是的,我一直在使用這樣的系統。

This link也有一些解釋什麼浮/雙是一個壞主意。

現在,如果您可以將它們作爲JSON中的浮點數,並且不會將它們翻譯爲您的編程語言中的float/double,那麼它可能沒問題,但是您仍然沒有使用float/double作爲數據類型,只是看起來像它的東西,並轉化成不同的東西。我想大多數JSON解析器會將它變成浮點值,如果你這樣輸入的話。

相關問題