【发布时间】:2019-02-24 03:30:06
【问题描述】:
我有一个长度可以变化的数字数组
let arrayNum = [1 ,5, 3, 12] // could also be [1, 5] or [1, 3, 5, 3, 1]
let sum = arrayNum.reduce(0, +)
为了计算每个元素的百分比并显示在标签上,我使用这种方法
for value in arrayNum {
percentageLabel.text = "\(value * 100 / sum) %"
}
但是,百分比加起来并不等于 100%
1 has 4%
5 has 23%
3 has 14%
12 has 57%
total % is 99%
在这种情况下,有人有更好的解决方案吗?谢谢。
P.S 我不希望它们具有像 99.2% 或 40.56% 这样的小数值。我只希望它们达到 99% 或 40%。
【问题讨论】:
-
只需将整数转换为双精度
-
@Nancy p 顺便说一句,它是重复的,无论如何你明白了,所以继续你想要的
-
所以您正在创建一个舍入错误,然后抱怨存在舍入错误。是的,因为你创造了它。
-
"total % is 99%" 实际上是 98%。