2009-01-31 20 views

回答

5

這取決於您對準確性的需求。如果您可以容忍來自IEEE存儲浮點數的方法的典型錯誤,那麼請使用浮點數,否則,如果您需要精確的表示形式(並且適用於任何不是您將使用的整數的數字在使用百分比的計算中)。

0

取決於你想要它的確切程度。如果你需要1或2位數字,並且你知道最大比率將會在maxint/1000以下,那麼我會考慮把這個比率乘以100來存儲一個整數。如果您需要確切的數字,您甚至可能希望將分子和分母作爲單獨的整數存儲。否則,堅持浮動或雙打。

0

我從來沒有在數據庫中使用浮點數,也許這是一個古老的技術已解決的習慣,我不是100%確定。

無論是ints,縮放整數還是小數。有時舍入誤差似乎不重要,但可能會導致某些值的匹配失敗或引入累積誤差。

2

這取決於你的比例是什麼,真的。

對於利率,例如在銀行業務中,我們總是使用小數,其精度和範圍由業務決定。如果要計算利率並且結果超出列的精度,那麼始終存在業務規則,該規則定義如何對結果進行四捨五入或截斷以適合列。

如果您的比例是,例如,一個對象的直徑和它的周長之間的比例,我可能會使用浮動。

1

取決於您的應用程序。如果你正在使用浮點數來計算與這個比率有關的所有事情,那麼將它作爲浮點數來存儲可能是有意義的。

但是,除此之外,浮點數通常會帶有一點數據庫異味。數據庫管理員不喜歡他們,因爲安裝不準確意味着浮點數本質上不一致。這與我們心愛的ACID中的'C'一致性相抵觸。

小數和縮放整數至少表現可預測。