我運行在SQL 2005錯誤值鑄造float時(24)值浮動(53)在SQL 2005
declare @a as float(24)
set @a=0.85
select cast (@a as float(53))
這個SQL代碼,結果是
0.850000023841858
有誰知道爲什麼?
謝謝。
我運行在SQL 2005錯誤值鑄造float時(24)值浮動(53)在SQL 2005
declare @a as float(24)
set @a=0.85
select cast (@a as float(53))
這個SQL代碼,結果是
0.850000023841858
有誰知道爲什麼?
謝謝。
前七位數字是浮點數的默認精度級別,當浮點數爲N時,N的值爲24或更小。之後,這些數字可以顯示爲更精確的浮點數。這是'浮點'。
你看到的數字是接近計算機可以然而,許多二進制數內得到它具有能使用。
如果您嘗試使用十進制編寫1/3,但只有足夠的空間存儲8位數,則可以獲得的最接近的編號爲0.33333333
。這仍然是一個很大的方法,但如果你有更多的小數位,你可以得到更準確的。這與計算機所面臨的情況完全相同,但每個連續的數字代表1/10秒,1/100秒和1/1000秒,計算機可以在1/2,1/4,1/8,1/16 。
感謝澄清浮動工作原理 – N30 2009-11-18 16:08:15
感謝您的快速回復。 後來,我發現這也支持你所說的。 http://support.microsoft.com/kb/125056 – N30 2009-11-13 23:41:25