Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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中的可变小数位数_Sql_Sql Server_Sql Server 2005_Tsql_Sql Server 2008 - Fatal编程技术网

sql中的可变小数位数

sql中的可变小数位数,sql,sql-server,sql-server-2005,tsql,sql-server-2008,Sql,Sql Server,Sql Server 2005,Tsql,Sql Server 2008,如何使数据库中的所有计算都计算到预先指定的小数位数?假设我有三个带有以下字段的表 表1 整数 B小数点18,3 表2 整数 B十进制18,2 C十进制18,3 表3 整数 精度整数 现在我需要修改它,以便所有的计算都基于表3中A的精度设置。我首先将我所有的小数转换为十进制30,10,以便在指定的情况下允许更高的精度 将结果包装在CAST语句中,以将其设置为所需的精度。即: 选择CAST AS int AS Result将结果包装在CAST语句中,以将其设置为所需的精度。即: 选择CAST AS

如何使数据库中的所有计算都计算到预先指定的小数位数?假设我有三个带有以下字段的表

表1 整数 B小数点18,3 表2 整数 B十进制18,2 C十进制18,3 表3 整数 精度整数 现在我需要修改它,以便所有的计算都基于表3中A的精度设置。我首先将我所有的小数转换为十进制30,10,以便在指定的情况下允许更高的精度

将结果包装在CAST语句中,以将其设置为所需的精度。即:

选择CAST AS int AS Result

将结果包装在CAST语句中,以将其设置为所需的精度。即:


选择CAST AS int AS Result

尝试在首先从Table3表检索精度的存储过程中使用该函数。

尝试在首先从Table3表检索精度的存储过程中使用该函数。

谢谢,这就是我所想的……我的结果需要是十进制,所以它应该被选为小数点18,结果是期望的精度,对吗?没错。自从您在示例A中说过,我就输入了int,在您的示例数据中,所有这些都是int。那么,为期望的精度输入一个变量就可以了?类似小数点18、@precision?只是澄清一下,你的意思是我应该按照表中的内容存储所有内容,并且在向UI报告结果之前,根据指定的精度对其进行四舍五入?@Prabhu-正确。这可能是得到你想要的东西的最简单的方法。谢谢,这就是我所想的…我的结果需要是一个小数,所以它应该是选择转换为小数18,期望的精度作为结果,对吗?没错。自从您在示例A中说过,我就输入了int,在您的示例数据中,所有这些都是int。那么,为期望的精度输入一个变量就可以了?类似小数点18、@precision?只是澄清一下,你的意思是我应该按照表中的内容存储所有内容,并且在向UI报告结果之前,根据指定的精度对其进行四舍五入?@Prabhu-正确。这可能是获得所需精度的最简单方法。因此,您的意思是按表中的原样存储所有内容,并在向UI报告之前,根据指定的精度对其进行舍入?我的意思是创建一个存储过程,首先检索所需的精度,并在舍入函数中使用它将其舍入到该精度。所有这些都包含在您创建的存储过程中。您可以使用CAST而不是已经建议过的ROUND函数。因此,您的意思是在向UI报告之前,按表中的原样存储所有内容,根据指定的精度舍入?我是说创建一个存储过程,首先检索所需的精度,并在round函数中使用它将其舍入到该精度。所有这些都包含在您创建的存储过程中。您可以使用CAST而不是已经建议的ROUND函数。