2

我有两个要除的数字:5262167 / 162333331 使用 Windows 计算器 (calc.exe) 验证时,结果为 0.0324158136076195,但在 SQL Server 2008R2 中使用带有 CAST 函数的简单选择时,我没有相同的结果。这是我在 SQL 编辑器中运行的内容:

select CAST((5262167 / 162333331) as decimal(18,8))

结果是 0.00000000

4

2 回答 2

9

你正在做整数除法,这将截断任何余数。5262167 < 162333331,所以你的结果是 0。在除法之前转换你的输入。

select CAST(5262167 as decimal(18,8)) / CAST(162333331 as decimal(18,8))
于 2013-05-10T14:22:13.830 回答
2

另一种不太优雅的方式是:select (5262167 * 1.0) / (1623333331 * 1.0))。我通常忘记将它们转换为乘以 1.0。

于 2013-05-10T17:46:44.027 回答