Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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
MS SQL Server十进制数据类型四舍五入_Sql_Sql Server 2008_Types_Decimal - Fatal编程技术网

MS SQL Server十进制数据类型四舍五入

MS SQL Server十进制数据类型四舍五入,sql,sql-server-2008,types,decimal,Sql,Sql Server 2008,Types,Decimal,我需要能够在我的表中存储像3.5这样的数字。所以我使用了十进制类型字段。但如果我输入3.5,它将四舍五入为4。我是愚蠢还是小数点不是小数点?你需要像decimal(18,3)那样声明小数点以指定小数点后的位数 在使用存储过程的情况下,参数还必须在十进制旁边指定精度,例如十进制(18,3)是的,它被声明为十进制(18,3)。不知道我为什么取整。你是怎么把数据放进去的?也许您使用的是存储过程-than参数也应该有decimal(18,3)类型,而不仅仅是decimal。为什么不使用呢?如果您需要总是

我需要能够在我的表中存储像3.5这样的数字。所以我使用了十进制类型字段。但如果我输入3.5,它将四舍五入为4。我是愚蠢还是小数点不是小数点?

你需要像decimal(18,3)那样声明小数点以指定小数点后的位数


在使用存储过程的情况下,参数还必须在十进制旁边指定精度,例如十进制(18,3)

是的,它被声明为十进制(18,3)。不知道我为什么取整。你是怎么把数据放进去的?也许您使用的是存储过程-than参数也应该有decimal(18,3)类型,而不仅仅是decimal。为什么不使用呢?如果您需要总是将数字四舍五入到0.0或0.5,则取有效值,我只是认为FLOAT适用于大数。我认为我需要重新了解数据类型。谢谢你,飞行员@琼斯-只要确保你理解浮点数和小数之间的区别,因为它们不一样。浮点数是近似值:与十进制参考值相比:您能否公布十进制列的完整定义(即您使用的小数位数和精度),例如十进制(10,2)-10=精度,2=小数位数。另外,您如何在UI中输入数字?在SQL语句中?你能把它也贴上去吗?如果你打算对这个值进行数学运算,浮动是一个非常糟糕的主意。这将导致舍入错误,因为它不是一个精确的值。非常糟糕的推荐。