【发布时间】:2017-05-01 17:39:26
【问题描述】:
上述查询在 MS 服务器中给出 1.0 作为输出。但它给出了 1.4 的功率(2.0,1.0/2)。如果有人解释它的原因,我真的很感激。 提前致谢!
【问题讨论】:
标签: sql sql-server
上述查询在 MS 服务器中给出 1.0 作为输出。但它给出了 1.4 的功率(2.0,1.0/2)。如果有人解释它的原因,我真的很感激。 提前致谢!
【问题讨论】:
标签: sql sql-server
1/2 使用整数除法,结果为零。二的零次方是一。
【讨论】:
power(2.0, 1.0/2) 或power(2.0, 0.5)。
power(2.0, 0.5) 的结果是1.4,而不是 2 的平方根的更准确的近似值——记录了为什么会这样(输出转换为输入的类型)但并不明显,因为POWER 名义上是一个在float 表达式上运行的函数。
POWER(2e0, 0.5),其中第一个操作数实际上是FLOAT,而不是DECIMAL(2,1)。
因为 1 和 2 是整数,所以结果转换为整数。就像 CAST(0.5 AS INT) = 0
如果其中至少有一个具有“1.0/2”或“1/2.0”或“1.0/2.0”之类的小数,则结果转换为小数,结果将为 0.5。
【讨论】: