如何在存储过程中保留小数精度?

时间:2015-04-24 23:32:41

标签: sql stored-procedures decimal precision

我在表中有一个数据类型为decimal(10,2)的列,当我尝试更新存储过程中的列时,我失去了2位数的精度。

如果我将字段更新为单个查询,它可以正常工作,但在存储过程中它会失去其精度。

示例:

UPDATE table
SET decimal(10,2) column = decimal(10, 2) column / 100

示例:197.50更新后的结果为197.00

由于

2 个答案:

答案 0 :(得分:0)

我认为,在您的RDMBS中,column / 100会自动完成运行时转换:

  • column采用十进制格式且
  • 100不是十进制格式

因此,您的解决方案正在将100更改为十进制格式,如下所示:

  • 100.00
  • CAST(100 As Decimal(10, 2))
  • (decimal(10, 2) 100)

答案 1 :(得分:0)

解决了问题。出于某种原因/ 100不能保持精度,当我尝试* 0.01时它起作用。

相关问题