我正在执行百分比计算,但它显示整数。我试图从int转换为float,但它仍然显示为整数。如何修复它以显示小数。
我正在使用的计算是100.0 *(1.0 +(floatA /(floatA + floatB)))
这是floatA = 1,floatB = 1的地方所以我应该看到50.0%的值而不是我看到的值为100.
我正在尝试使用小数。任何帮助将不胜感激。
答案 0 :(得分:5)
如果floatA
和floatB
是COUNT
返回的值,那么它们将是整数。
您需要将除法中涉及的至少一个操作数强制转换为float
/ decimal
,以避免表达式中该部分的整数除法。
100.0 * (1.0 + (floatA / (floatA + CAST(floatB as float))))
答案 1 :(得分:1)
如果你使用floatA = 1和floatB = 1,那么铅笔和纸算术应该给你150.但那些是整数,而不是浮点数。
但是在大多数SQL平台上,这句话
select 1 / (1 + 1)
将返回零。
此
select 100.0 * (1.0 + (1.0/ (1.0 + 1.0)))
应该给你150。
答案 2 :(得分:1)
只需将一个值转换为浮点类型即可解决问题。
select (12345/6789)
上面的例子将返回1,即结果被截断为整数
select (cast(12345 as float)/ cast(6789 as float))
select (12354/ cast(6789 as float))
这些示例将返回1.81838267786125