我用C#和SQL 2005 工作我已經存儲的值0.2到真正類型的表列的浮動變量。 當我打開表格檢查值時,我發現一個值爲0.200000029 ...這是已知問題,實際是近似類型。 但是,我已將使用管理工作室的值更改爲0.2並重新載入表格。數據庫現在顯示0.2的值。C#到SQL浮點值轉換
問題出在C#和SQL之間。是否有可能從SQL管理工作室存儲C#中的值?我想這是,但不知道如何。
任何人都可以幫忙嗎? 非常感謝。
托馬斯
我用C#和SQL 2005 工作我已經存儲的值0.2到真正類型的表列的浮動變量。 當我打開表格檢查值時,我發現一個值爲0.200000029 ...這是已知問題,實際是近似類型。 但是,我已將使用管理工作室的值更改爲0.2並重新載入表格。數據庫現在顯示0.2的值。C#到SQL浮點值轉換
問題出在C#和SQL之間。是否有可能從SQL管理工作室存儲C#中的值?我想這是,但不知道如何。
任何人都可以幫忙嗎? 非常感謝。
托馬斯
如果存儲.2想回到ONLY。2,使用decimal
數據類型。 SQL Server中的float
值是真實的IEEE float
值,這意味着您可以結束字段中的NaN值。用這些值做任何事情都會導致你的陳述崩潰。除非你知道你真的需要float
價值,否則使用decimal
會好得多。
要直接回答你的問題,你看到的.200000 .... 029只是浮點值的本質。
正如所指出的那樣,你所看到的是浮點數如何存儲在二進制文件中的副作用。
爲0.2F,確切的表示是0.20000000298023223876953125
見喬恩斯基特的文章以瞭解更多信息和代碼是如何得出:
好建議!此外,從不使用貨幣值浮動! – 2010-01-27 15:19:28