在sql中两数相除为什么等于1,我要保留小数的怎么写?
convert(float,a.Value)/SUM(convert(float,a.Value))
24 / 101
------解决方案--------------------用double型的
------解决方案--------------------select 24.00/101
------解决方案--------------------你如果输入的是整数的形式,计算机会当成整数处理,结果也输出的是整数。
如果你想让计算机当成浮点数处理(输出会是浮点数,所以会带小数点之类的),那就需要在整数后面加.0
两个数做除法,有一个是浮点数就够了。
26/25,这结果就是1了
26.0/25,这结果就是一点多了。
------解决方案--------------------都用float
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------select round((Convert(float,a)/
sum(Convert(float,a))),2
)
from table
------解决方案--------------------先用convert把两个数转换成double类型的,再相除
------解决方案--------------------[Quote=引用:]
先用convert把两个数转换成double类型的,再相除
[/Quote]
好像是cast 吧
------解决方案--------------------cast(Value as float)
------解决方案--------------------convert(float,a.Value)/convert(float,SUM(a.Value))
得除数和被除数都必须转化为float就可以了。
------解决方案--------------------
------解决方案--------------------*1.00 就ok吧