如何通过除以两个整数值来获得浮点结果?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

在对两个整数进行除法时,我希望指定十进制数的数目,如下所示:

select 1/3

当前返回的0。我希望它能回来0,33

类似于:

select round(1/3, -2)

但这行不通。怎样才能达到预期的效果?

提问于
用户回答回答于

如果需要使用现有的域或参数(这些参数是整数),你可以先将它们转换为浮点数:

SELECT CAST(1 AS float) / CAST(3 AS float)

SELECT CAST(MyIntField1 AS float) / CAST(MyIntField2 AS float)
用户回答回答于

因为SQLServer执行整数除法。试试这个:

select 1 * 1.0 / 3

当你将整数作为平行线传递时,这是很有帮助的。

select x * 1.0 / y

扫码关注云+社区