SQL Server:对十进制数字进行四舍五入并转换为int(在Select中)



我在Select中使用以下行,该行返回带小数的数字,例如33.33333。

我如何在Select中四舍五入并转换为整数,这样我就没有小数了,例如在上面的例子中,它应该返回33?

100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END) AS matchPercent

您可以使用ROUND函数将值四舍五入为整数:

ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent

这将保留类型,例如四舍五入的float将保持为float。如果您还需要返回int数据类型(或其他整数数据类型),您还需要转换它:

CONVERT(INT, ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0)) AS matchPercent

使用round函数对数字进行四舍五入:

ROUND(100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent

如果您想先对数字进行四舍五入,然后将其转换为整数,还可以在要转换为整数的数字上加0.5。

下面的语句将十进制值四舍五入到最接近的整数

ROUND(decimalvalue,0)
ROUND(number, decimals, operation)

示例

ROUND(94.503,0)

结果:95

示例

ROUND(94.403,0)

结果:94

相关内容

  • 没有找到相关文章

最新更新