【问题标题】:SQL Server 2005 Calculations - Decimal Truncation?SQL Server 2005 计算 - 十进制截断?
【发布时间】:2014-01-24 19:44:25
【问题描述】:

我正在更新 case 语句中的表,如下所示:

更新我的表 设置字段C = (案例

...

当 FieldA = 'X' 然后 FieldB * (600 / 10000) / 365

...

否则为空 结尾) 来自我的表

FieldB 被分配一个整数,而 Field C 是一个浮点数。

在 FieldA 为 X 且 FieldB 为 '7' 的情况下,我得到的结果是 0。当它应该是 0.00115068 时,十进制中没有其他内容...如果我将公式更改为“...FieldB * .06 / 365" 我得到不同的结果 - 我得到 0.00115 并且小数点的其余部分丢失。

为什么会发生这种情况?

提前谢谢...

【问题讨论】:

    标签: sql sql-server-2005 decimal truncation


    【解决方案1】:

    如果所有表达式都是整数,则 SQL Server 使用整数计算。您可以通过 e 解决此问题。 G。使用

    FieldB * (600.0 / 10000) / 365
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 2014-03-25
      • 2012-01-14
      • 2021-10-12
      相关资源
      最近更新 更多