2010-01-27 76 views
0

我用C#和SQL 2005 工作我已經存儲的值0.2真正類型的表列的浮動變量。 當我打開表格檢查值時,我發現一個值爲0.200000029 ...這是已知問題,實際是近似類型。 但是,我已將使用管理工作室的值更改爲0.2並重新載入表格。數據庫現在顯示0.2的值。C#到SQL浮點值轉換

問題出在C#和SQL之間。是否有可能從SQL管理工作室存儲C#中的值?我想這是,但不知道如何。

任何人都可以幫忙嗎? 非常感謝。

托馬斯

回答

4

如果存儲.2想回到ONLY。2,使用decimal數據類型。 SQL Server中的float值是真實的IEEE float值,這意味着您可以結束字段中的NaN值。用這些值做任何事情都會導致你的陳述崩潰。除非你知道你真的需要float價值,否則使用decimal會好得多。

要直接回答你的問題,你看到的.200000 .... 029只是浮點值的本質。

+0

好建議!此外,從不使用貨幣值浮動! – 2010-01-27 15:19:28

0

正如所指出的那樣,你所看到的是浮點數如何存儲在二進制文件中的副作用。

爲0.2F,確切的表示是0.20000000298023223876953125

見喬恩斯基特的文章以瞭解更多信息和代碼是如何得出:

http://www.yoda.arachsys.com/csharp/floatingpoint.html