日期:2014-05-18  浏览次数:20604 次

在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 24.00/101

------解决方案--------------------
探讨

select 24.00/101

------解决方案--------------------
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就可以了。
------解决方案--------------------
探讨

convert(float,a.Value)/convert(float,SUM(a.Value))

得除数和被除数都必须转化为float就可以了。

------解决方案--------------------
*1.00 就ok吧