SQL Server 中使用小數
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在使用的時候發現一個問題,由于編程的習慣,當數據庫中需要存儲小數的時候,就想當然的使用了float類型,可結果太讓人意外了
數據庫中存儲了0.5沒問題,當使用0.6的時候,得到的確是0.59999999999999998,使用1.6得到的是 1.6000000000000001,0.3得到的是0.29999999999999999,很奇怪啊! 在查找之后才明白原因,在sql server的幫助中這樣描述 小數數據 decimal 數據包含存儲在最小有效數上的數據。在 sql server中,小數數據使用 decimal 或 numeric 數據類型存儲。存儲 decimal 或 numeric 數值所需的字節數取決于該數據的數字總數和小數點右邊的小數位數。例如,存儲數值 19283.29383 比存儲 1.1 需要更多的字節。 在 sql server中,numeric 數據類型等價于 decimal 數據類型。 近似數字數據 近似數字(浮點)數據包括按二進制計數系統所能提供的最大精度保留的數據。在 sql server 中,近似數字數據以 float 和 real 數據類型存儲。例如,分數 1/3 表示成小數形式為 0.333333(循環小數),該數字不能以近似小數數據精確表示。因此,從 sql server 獲取的值可能并不準確代表存儲在列中的原始數據。又如,以 .3, .6, .7 結尾的浮點數均為數字近似值。 float表示的近似值,下圖是一個測試的結果 該文章在 2010/7/31 17:30:18 編輯過 |
關鍵字查詢
相關文章
正在查詢... |