2015-07-22 79 views
1

什麼是最佳的數據類型存儲整數,在SQL Server完全浮點值。數據類型來存儲整數和SQL Server的浮點值

我需要存儲在單個列中正常整數和點(浮點)的十進制值。

Ex。

ColumnNameValues 
15 
15.5 
12.3 
17 
19.8 
+1

'FLOAT'易受舍入誤差 - 如果你需要精確的數學,用'DECIMAL(P,S)'代替 - 見[上'decimal'的細節有關MSDN文檔(https://msdn.microsoft。 COM/EN-US /庫/ ms187746.aspx) –

+0

我更喜歡'數字(精度,小數)' –

+0

的數值17 *相同* 17.0(相同17.00 ..)。只有在以特定格式書寫*時,相同的值*看起來不同。那麼,爲什麼這些「整數」必須與其他類型/格式存儲在一起? – user2864740

回答

0

,如果你要在整數來存儲它會之後減少的數值。(點),但如果你要使用float將進入所有的值是否是整數或浮點數

declare @t table (ID float) 
insert into @t(id)values (15) ,(15.5),(12.3),(17),(19.8) 

select * from @t 

declare @t table (ID int) 
insert into @t(id)values (15) ,(15.5),(12.3),(17),(19.8) 

select * from @t 
+0

我不是downvoter。但看看這裏https://technet.microsoft.com/en-us/library/ms187912(v=sql.105).aspx –

+0

如果你把這些小事情放在心上,那麼你就無法在SO中生存。它只是一個點離開它。將放棄無效:) –

0

如果你不需要在數據庫中正確地看到浮點數,那麼可以將浮點數的4個字節轉換爲一個整數並將其存儲爲整數。如果你想恢復它,請從數據庫中讀取它,然後再將它轉換爲浮點數。

如果你沒有從上下文的信息,如果保存的值是一個整數或浮點數,它變得有點棘手,你需要限制的整數或漂浮在某種程度上,例如「犧牲」一點以確定它是哪種變體。

相關問題