SQL 打印小数点较大的浮点数
SQL prints float with large decimal place
我一直在研究一个解决方案来获得学生的百分比,我只需要小数点后两位,所以我尝试了这个
select ROUND(count(fname) * 100.0/(select count(*) from stud_info WHERE grade = 'FOUR'),2)as 'Total',
status as 'NutritionalStatus'
from stud_info
where grade = 'FOUR'
group by status
然后它打印出多达 11 位小数的零,你能帮我解决什么问题吗?
我有女士 sql 2014
首先,我建议你这样写:
select status,
avg(case when grade = 'FOUR' then 1.0 else 0 end) as Total
from stud_info
where grade = 'FOUR'
group by status;
那么如果你想要两位小数,转换成小数:
select status,
convert(decimal(6, 2),
avg(case when grade = 'FOUR' then 1.0 else 0 end)
) as Total
from stud_info
where grade = 'FOUR'
group by status;
round()
更改 value 但不会更改 type。 application/presentation 层可能仍会决定显示不必要的零。
您也可以使用 format()
或 str()
将值转换为字符串。
我一直在研究一个解决方案来获得学生的百分比,我只需要小数点后两位,所以我尝试了这个
select ROUND(count(fname) * 100.0/(select count(*) from stud_info WHERE grade = 'FOUR'),2)as 'Total',
status as 'NutritionalStatus'
from stud_info
where grade = 'FOUR'
group by status
然后它打印出多达 11 位小数的零,你能帮我解决什么问题吗? 我有女士 sql 2014
首先,我建议你这样写:
select status,
avg(case when grade = 'FOUR' then 1.0 else 0 end) as Total
from stud_info
where grade = 'FOUR'
group by status;
那么如果你想要两位小数,转换成小数:
select status,
convert(decimal(6, 2),
avg(case when grade = 'FOUR' then 1.0 else 0 end)
) as Total
from stud_info
where grade = 'FOUR'
group by status;
round()
更改 value 但不会更改 type。 application/presentation 层可能仍会决定显示不必要的零。
您也可以使用 format()
或 str()
将值转换为字符串。