Sql server 为什么服务器在插入时更改单个值?
我有一个从C#代码到SQL Server 2008的查询:Sql server 为什么服务器在插入时更改单个值?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个从C#代码到SQL Server 2008的查询: INSERT INTO [tableName] (valueColumn) @Value 其中@Value是具有DbType.Single和Value=45.01的sql参数的名称 执行查询后,我看到的是表值45009998315332,而不是45,01 为什么会这样 备注:列具有类型floatvalueColumn可能是一个浮点数 浮点数据是近似的;因此,并非数据类型范围中的所有值都可以精确表示 阅读链接 浮点数在不同的体系结构中可
INSERT INTO [tableName] (valueColumn) @Value
其中@Value
是具有DbType.Single
和Value=45.01的sql参数的名称
执行查询后,我看到的是表值45009998315332
,而不是45,01
为什么会这样
备注:列具有类型float
valueColumn
可能是一个浮点数
浮点数据是近似的;因此,并非数据类型范围中的所有值都可以精确表示
阅读链接
浮点数在不同的体系结构中可能略有不同当我直接在sql语句中写入值而不是使用参数时,一切正常。float
不是精确的数据类型-会有舍入错误。。。。如果您需要更精确的数字,请使用DECIMAL(p,s)
。谢谢大家!将sql参数类型更改为SqlDBType.Float解决了此问题。