2010-01-27 43 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