Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为什么服务器在插入时更改单个值?_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 为什么服务器在插入时更改单个值?

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可能是一个浮点数 浮点数据是近似的;因此,并非数据类型范围中的所有值都可以精确表示 阅读链接 浮点数在不同的体系结构中可

我有一个从C#代码到SQL Server 2008的查询:

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解决了此问题。