2011-02-11 53 views
2

Web服務API:我注意到一些公司喜歡將整數作爲「貨幣」數量,而不是傳遞帶小數點的位數(100.29美元)的小數數據類型是否有很好的理由爲什麼他們選擇十進制數據類型的貨幣整數?網絡服務,貨幣輸入

實施例,他們這樣做

  • 100 = $ 1.00
  • 10043 = $ 100.43

爲什麼不能做到這一點

  • 1.00或1 = $ 1
  • 100.43 = $ 100.43
+2

啊好吧!以避免問題四捨五入。 – 001

+1

到底!漂浮和雙打對於細微的四捨五入問題而言是非常糟糕的。十進制數據類型也精確到30位左右,所以它適用於計算複合興趣等,在那裏你需要更多的數字。 – Marco

回答

0

並非所有的文化都使用相同的字符作爲小數點。通過使用最小的相關貨幣單位(所以這裏是美分而不是美元),可以避免應該接受/發出什麼小數點字符的問題。

0

不,我沒有看到在提交到服務器進行轉換之前,使其成爲一個整數的因子沒有任何實際益處。而且,這對他們內部實施最好的方式非常重要。

我確實在有這個實現的Web服務之一中注意到了這一點,我之所以發現它的原因是因爲他們希望將其他參數與其他參數結合起來,作爲內部校驗和驗證的HASH。