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