當你在表中使用decimal或float作爲數據類型時應該做什麼決定?Decimal或Float的決定
回答
A float
更小,性能更高,所以如果性能問題您可能想要與float
一起去。
A decimal
更適合重複準確的十進制數字。 A float
以二進制形式存儲該數字,因此像10.2這樣的數量不能精確地存儲爲float
,但它可以完全存儲爲decimal
。如果精確的十進制表示比性能更重要,那麼您應該選擇decimal
。
檢查了這。這可能是你在找什麼。它基本上給你的區別。
一個整型,像57的值代表數字57精確。毫無疑問,它是否真的代表了更大的一點,或者更小一點。零值表示加性一致性(將任意值加零產生相同的值),值1表示乘性身份(將任意值乘以一得到相同的值),其他正值表示必須的次數加到零以達到它(例如,2是1 + 1,3是1 + 1 + 1等),並且任何負值表示相應正值的加法倒數。
對於二進制浮點類型,值不代表精確的數字。相反,除了一些哨兵值以外,每個浮點值都有一系列的數字,它應該被認爲是最好的表示;該範圍內的一個數字被視爲「面值」。 IEEE標準要求增加兩個浮點值應該產生通過增加它們的標稱值而產生的數字的最佳表示,但這並不意味着其標稱值正好是2000000.125的float
實際上代表確切的數字量。它可能代表計算結果(例如20000000.0f/10.0f),其結果可以較好地代表float
的值。
儘管Decimal
類型提供的精度高於float
或double
,但它的主要用途是用於表示精確的小數(例如1.37)。類型的語義實際上更接近不精確類型的類型,如double
,而不是像int
這樣的精確類型,因爲添加例如萬億到數字,然後減去萬億可能會導致一個不同於起始值的數字。如果類型的目的是識別精確的小數部分,或者需要類型可提供的額外精度,那麼Decimal
可能是一個很好的適合,儘管它的怪癖。否則,如果顯示爲1.37的值確實代表1.37是最好的方便表示的數字,但實際上它可能稍大或更小,那麼類型double
將更加緊湊和更快地工作。
- 1. 版本號float,decimal或者雙
- 2. sql type float,real,decimal?
- 3. Decimal,Float,Double或Varchar在數據庫中存儲價格金額?
- 4. Autofixture - 創建一個float,double或decimal,餘數爲
- 5. PHP float/double存儲爲MySQL DECIMAL
- 6. C++ float到sql server DECIMAL正確轉換
- 7. 如何將分數格式化字符串轉換爲Java中的Decimal或Float?
- 8. 將PHP中的PDO與decimal/double/float值綁定的最佳方式是什麼?
- 9. 如何將Int/Decimal轉換爲C#中的float值?
- 10. 在System.Windows.Forms.DataGrid中設置double/float/decimal的精度
- 11. Ruby on Rails - 如何將代碼從float移植到decimal?
- 12. 如何使sqlalchemy在反映表時返回float而不是decimal?
- 13. SQL Server:將varchar轉換爲decimal/float時出錯
- 14. 如何在數組PHP中翻轉STRING和decimal/float值?
- 15. 存儲統計數據,我需要DECIMAL,FLOAT還是DOUBLE?
- 16. 使用Swift在URL請求中提交Decimal/Float
- 17. 有一個粗略的時間決定爲float,double或十進制
- 18. boost :: spirit(qi)float和double之間的決定
- 19. Mysql bigint,decimal(18,0)或char(10)for primary
- 20. mobileSetKeyboardType「decimal」
- 21. 我如何知道什麼時候在覈心數據中使用Integer16/32/64或float/int/double/decimal?
- 22. Modulo(%)與Decimal數據類型一起使用,但不與float或real一起使用。爲什麼?
- 23. 用Java編寫FloatBuffer或Float(float)數組的最快方法
- 24. 如何解決number_to_currency將decimal轉換爲逗號的錯誤?
- 25. CSS wrap image或「center float」
- 26. float或double特殊值
- 27. 不能將float轉換爲Decimal。首先轉換浮動到一個字符串
- 28. C#泛型類型轉換Decimal轉換爲Float - 「不能轉換類型'T1'? 'T2'「
- 29. 將MySQL Decimal數據類型類型轉換爲c#float數據類型
- 30. 將字符串類型轉換爲int,float,decimal等類型在運行時C#
可能的重複:http://stackoverflow.com/questions/1056323/difference-between-numeric-float-and-decimal-in-sql-server,也看看MSDN文檔:http://msdn.microsoft .com/en-us/library/ms187912.aspx – Styxxy 2013-02-21 09:33:17
引用[regexes]上的一個着名短語(http://en.wikiquote.org/wiki/Jamie_Zawinski)...有些人遇到問題時,認爲「我知道,我會用花車。」現在他們有兩個問題._ – xanatos 2013-02-21 09:41:55