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



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

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

例:

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

示例:197.50更新时的结果197.00

谢谢

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

  • column是十进制格式的,并且
  • 100不是十进制格式

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

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

问题已解决。由于某种原因,/100 在我尝试 * 0.01 时无法保持精度,它有效。

最新更新