问题描述
我有一个简单的查询
选择回合((bca_total_lean /(bca_total_meta + bca_total_fat))* 100,0)作为x的lean_mass_percent ...
结果,对于 bca_total_lean / bca_total_fat 结果,我看到0。还可以通过bca_total_meta为0。
as result, I see 0. for
bca_total_lean/bca_total_fat
result is ok. By bca_total_meta is 0.
所有字段都是整数,并且所有结果都大于0。PHP中此数据中的相同操作返回83。
我也尝试过没有舍入功能。相同的结果。
BD返回的单独数据
All fields are integers and all results are greater than 0. The same operation in this data in PHP returns 83.I also tried without a round function. The same result.Separated data return by BD
- 元:77391
- 脂肪:11892
- lean:74362
任何提示哪里有错误?
推荐答案
整数除法会截断小数位。您的表达式返回0到1之间的比率,该比率始终被截断为0。
Integer division truncates fractional digits. Your expression returns a ratio between 0 and 1, which is always truncated to 0.
要获取百分比,请先乘以100。
To get "percentage", first multiply by 100.
select round((bca_total_lean*100)/(bca_total_meta + bca_total_fat),0) as lean_mass_percent from x where...
这篇关于PostgreSQL数学运算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!