哪種數據類型最有效地存儲數字,例如11.111。在SQL Server中存儲數字11.111的最有效方式
這些數字在點前有兩位數,最多三位。
目前該列是'bigint',我猜測這將需要更改爲小數或浮點數。
任何幫助非常感謝。
感謝
哪種數據類型最有效地存儲數字,例如11.111。在SQL Server中存儲數字11.111的最有效方式
這些數字在點前有兩位數,最多三位。
目前該列是'bigint',我猜測這將需要更改爲小數或浮點數。
任何幫助非常感謝。
感謝
我認爲你有兩個選擇:乘以1000並存儲爲一個int(和出路劃分),或者只是存儲爲雙。隨着內存和硬盤空間變得如此便宜,它可能不值得進一步優化的麻煩。
當你說雙倍你的意思是一個浮動權嗎?謝謝您的幫助。 – Chin 2009-11-16 03:46:45
如果您需要確切的表示形式,smallmoney數據類型使用4個字節。
這相當於使用一個int(4字節),並執行乘法/除法來處理小數位。
不要認爲它變得比這小 – Amirshk 2009-11-16 02:28:02
使用十進制數據類型來設定確切的精度:
decimal(5,3)
使用5個字節....... – 2009-11-16 02:20:59
是的,所以smallmoney – 2009-11-16 02:27:55
smallmoney是4字節:http://msdn.microsoft.com/en-us/library/ms179882。 aspx – RickNZ 2009-11-16 16:01:52
你應該使用十進制數據類型。它存儲精確的浮點數
DECLARE @d decimal(5, 3)
SET @d=12.671
SELECT @d, DATALENGTH(@d)
正如@Mitch指出的那樣,這將是5個字節大小。您需要額外支付一個字節,以便更輕鬆地計算值。
使用5個字節....... – 2009-11-16 02:20:26
..並且應該是DECIMAL(5,3) – 2009-11-16 02:21:37
表示是否需要精確? – 2009-11-16 02:15:20
等一下。整數怎麼樣?是不是浮動? 11.111是否浮動? – DarthVader 2009-11-16 02:16:20
是的,它需要精確到點後的3分 – Chin 2009-11-16 02:19:37