C# 比较Informix和SQL Server中的浮点/十进制值

C# 比较Informix和SQL Server中的浮点/十进制值,c#,sql-server-2005,floating-point,decimal,informix,C#,Sql Server 2005,Floating Point,Decimal,Informix,我试图比较Informix数据库和SQL Server数据库中的值。我遇到的问题是Informix将浮点值返回为“4000”,SQL Server将浮点值返回为“40.000.000” Informix列的数据类型为“float”,SQL Server列的数据类型为decimal(8,2) 比较是在C#应用程序中进行的,它总是因为返回的内容而失败 来自Informix数据库的数据将直接插入SQL Server数据库,因此在提取值时,比较应该是准确的 我不知道如何解决这个问题。任何帮助都将不胜感激

我试图比较Informix数据库和SQL Server数据库中的值。我遇到的问题是Informix将浮点值返回为“4000”,SQL Server将浮点值返回为“40.000.000”

Informix列的数据类型为“float”,SQL Server列的数据类型为decimal(8,2)

比较是在C#应用程序中进行的,它总是因为返回的内容而失败

来自Informix数据库的数据将直接插入SQL Server数据库,因此在提取值时,比较应该是准确的

我不知道如何解决这个问题。任何帮助都将不胜感激


谢谢大家!

这个问题已经解决了吗?。。似乎可以将Informix DBMONEY环境值设置为使用句点而不是逗号作为千位分隔符,但这仍然不会影响将其发送到SQL Server时的值。您是否使用其他值进行了测试,以查看是否存在模式


我还记得,使用Informix FLOAT和SMALLFLOAT数据类型,有时值可能会从一个计算机硬件体系结构向另一个计算机硬件体系结构倾斜。

这个问题解决了吗?。。似乎可以将Informix DBMONEY环境值设置为使用句点而不是逗号作为千位分隔符,但这仍然不会影响将其发送到SQL Server时的值。您是否使用其他值进行了测试,以查看是否存在模式


我还记得,对于Informix FLOAT和SMALLFLOAT数据类型,有时值可能会从一个计算机硬件体系结构向另一个计算机硬件体系结构倾斜。

明显的问题是“Informix数据库中存储的值是什么”;以及“存储在SQL Server数据库中的值是多少”。SQL Server值的格式有点不正常;我假设在一个区域设置中,小数点是逗号,点是千位分隔符。您是否可以使用C#以外的工具访问任一数据库?你能用这些来验证表中的值吗?例如,Informix有一个粗糙但有效的工具称为DB Access;当它从数据库中选择数据时,它会说什么?除了使用C#,我确实无法访问Informix数据库中的值,但另一方面,在SQL Server数据库中,该值被列为40.00。我相信Informix数据库中的值将是某种形式的“40.00”,因为字段是“可用小时数”。编辑:当链接到Access中的表时,Informix表中的值为“40”。如果SQL Server中的字段值为40,但显示为“40.000.000”,则这是一个问题。您使用的是哪种语言环境?哪个字符是小数点,哪个字符是千位分隔符?我想知道Informix驱动程序是否有被区域设置混淆或误导的危险,并且正在将值格式化为字符串
40.00
(带点),但是这会被转换,将点视为千分隔符,产生4000作为值。关于我使用的区域设置,您是什么意思?我真的不知道该怎么弄清楚。你来自哪个国家?您使用的代码中使用了哪一套文化习俗?小数点是逗号还是点?千位分隔符是点还是逗号?(它们通常是互补对……但也可能是其他的。)显而易见的问题是“Informix数据库中存储的值是什么”;以及“存储在SQL Server数据库中的值是多少”。SQL Server值的格式有点不正常;我假设在一个区域设置中,小数点是逗号,点是千位分隔符。您是否可以使用C#以外的工具访问任一数据库?你能用这些来验证表中的值吗?例如,Informix有一个粗糙但有效的工具称为DB Access;当它从数据库中选择数据时,它会说什么?除了使用C#,我确实无法访问Informix数据库中的值,但另一方面,在SQL Server数据库中,该值被列为40.00。我相信Informix数据库中的值将是某种形式的“40.00”,因为字段是“可用小时数”。编辑:当链接到Access中的表时,Informix表中的值为“40”。如果SQL Server中的字段值为40,但显示为“40.000.000”,则这是一个问题。您使用的是哪种语言环境?哪个字符是小数点,哪个字符是千位分隔符?我想知道Informix驱动程序是否有被区域设置混淆或误导的危险,并且正在将值格式化为字符串
40.00
(带点),但是这会被转换,将点视为千分隔符,产生4000作为值。关于我使用的区域设置,您是什么意思?我真的不知道该怎么弄清楚。你来自哪个国家?您使用的代码中使用了哪一套文化习俗?小数点是逗号还是点?千位分隔符是点还是逗号?(它们通常是互补对……但它们可能是其他的。)问题已经解决了。就我而言,这是一个错误,一开始与数据类型无关。它已经被解决了。就我而言,这是一个错误,从一开始就与数据类型无关。