--------------------------
Fruit Trees
--------------------------
Apple 1098
Banana 500
Grapes 460
--------------------------
TOTAL 2058
--------------------------
现在,我想以百分比的形式找出每种水果类型有多少棵树。所以,这就是我做的事情
---------------------------------------------------------
Apple floor((1098*100)/2058) 53%
Banana floor(( 500*100)/2058) 24%
Grapes floor(( 460*100)/2058) 22%
---------------------------------------------------------
TOTAL 99%
正如您所看到的,地板值损失1%
我需要逻辑,无论每种水果的价值如何,总数应达到100%。 上面是SAMPLE DATA,每个水果的树数,水果数量可以增加或减少。
答案 0 :(得分:2)
您应该使用round()
。 floor
和ceil
都不准确到100%。
这会导致一些百分比高于实际值,有些则更低。但是,看到你已经降低了百分比,我怀疑这是一个问题。
答案 1 :(得分:2)
只需使用round()
代替floor()
?
但是要小心添加舍入的数字或百分比。更好地使用原始值来计算总数。
答案 2 :(得分:2)
我认为在某些情况下ROUND无法完美运行。例如:
如果原始百分比是:
苹果50.40 香蕉30.40 葡萄19.20
所有这三个值都会向下舍入,而你只剩下99%。
如果需要,您仍需要一些机制来检查总计100%并添加/减去特定值的百分比。