我不明白我在下面的代码中看到的除法结果。
第一列产生40。
第二列产生53。
第三列简单地将40除以53,这应该达到0.7547169811,相反,小数是右边的一个位置。
导致此行为的原因是什么,我应该如何纠正?
(SELECT COUNT(*)
FROM students s
INNER JOIN ~[temp.table.current.selection:students] stusel ON stusel.dcid=s.dcid
WHERE s.lunchstatus = 'F'),
(SELECT COUNT(*) FROM ~[temp.table.current.selection:students]),
(
(SELECT COUNT(*)
FROM students s
INNER JOIN ~[temp.table.current.selection:students] stusel ON stusel.dcid=s.dcid
WHERE s.lunchstatus = 'F')
/
(SELECT COUNT(*) FROM ~[temp.table.current.selection:students])
)
---
40 53 7.54716981132075471698113207547169811321E-01
答案 0 :(得分:2)
它显示7.54716981132075471698113207547169811321E-01
,表示0.754716981132075471698113207547169811321
。查看wikipedia article on E notation。
答案 1 :(得分:1)
这是科学记数法 - 尝试将结果转换为例如小数:
select
cast((40 / 53) as decimal(5, 4)) as DIVISION_RESULT
from
dual
请注意,通过这样做,您可能会失去浮点精度。