我需要根据3个不同的计数/来计算状态百分比 假设我有3个状态 1)通过 2)失败 3)跳过
在两种情况下,我设法通过Floor方法设置了一种计算,而在Ceil方法中设置了另一种计算来进行处理。他们总是设法将两个数字完美地相加到100。但是现在我陷入了3个值的困境。帮助将不胜感激。
const successRate = Math.floor((this.progressCounts.getStatusCount('Passed') * 100) / this.progressCounts.getTotal()),
failureRate = Math.ceil((this.progressCounts.getStatusCount('Failed') * 100) / this.progressCounts.getTotal()),
skippedRate = Math.floor((this.progressCounts.getStatusCount('Skipped') * 100) / this.progressCounts.getTotal());
答案 0 :(得分:1)
这是四舍五入的百分比和分数的问题。最简单的方法可能是先floor
个,再ceil
个,然后根据到目前为止的总和来计算最后一个。
const successRate = Math.floor((this.progressCounts.getStatusCount('Passed') * 100) / this.progressCounts.getTotal());
const failureRate = Math.ceil((this.progressCounts.getStatusCount('Failed') * 100) / this.progressCounts.getTotal());
let skippedRate = this.progressCounts.getStatusCount('Skipped');
if (successRate + failureRate + \
Math.floor(skippedRate * 100)/this.progressCounts.getTotal() == 100) {
skippedRate = Math.floor(skippedRate * 100)/this.progressCounts.getTotal();
} else {
skippedRate = Math.ceil(skippedRate * 100)/this.progressCounts.getTotal();
}
您可能需要稍加捏造,但要遵循一些原则。