我用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