0
SELECT CAST (330/60 AS FLOAT) AS result

或者

SELECT CONVERT(FLOAT, 330/60) AS result

实际上我期望结果为 5.5

但它返回 5。为什么?

并告诉我任何解决方案以获得5.5 的结果

4

2 回答 2

5

用于60.0强制定点类型:

 SELECT CAST (330/60.0 AS FLOAT) AS result
 SELECT CONVERT(FLOAT, 330/60.0) AS result

的计算330/60是以整数形式完成的,它将对结果进行四舍五入。之后你投到浮动。您可以从一开始就使用数字类型,而无需强制转换:

SELECT 330/60.0 AS result
于 2012-06-21T08:19:58.113 回答
2

而不是将答案转换为 float ,您应该尝试将分母转换为 float 然后进行除法

 Select 330/CAST(60 as float) as result

或者按照 juergen d 的建议更改分母以包含小数部分

 SELECT CAST (330/60.0 AS FLOAT) AS result
于 2012-06-21T08:26:03.290 回答