我试图在行的数组集合中过滤大于或等于-50%的比率,以便轻松识别为"降级"行。
代码:
$SumTPNR = 0
$SumPPNR = 0
foreach ($Row in $table) {
$html += try {
$Rate = [DECIMAL](100*(($Row.NumOfPNRs-$Row.PreviousWeekNumOfPNRs)/$Row.PreviousWeekNumOfPNRs))
$Rate = "{0:N0}" -f $Rate
$ErrorTrapped = $error[0].Exception.Message -eq "Attempted to divide by zero."
"<tr>
<td>" + $Row[0] + "</td>
<td>" + $Row[1] + "</td>
<td>" + $Row[2] + "</td>"
if ($Rate -ge -50) {
if ($Rate -ne $ErrorTrapped) {
"<td>" + "$Rate % Degraded" + " </td></tr>"
}
} else {
"<td>" + "$Rate %" + " </td></tr>"
}
} catch {
"<td>" + "$Null" + "</td></tr>"
}
$SumTPNR += $Row[1] -join '+'
$SumPPNR += $Row[2] -join '+'
}
输出:
答案 0 :(得分:0)
这条线的目的是什么?
$Rate = "{0:N0}" -f $Rate
您正在将$Rate
转换为字符串,但尝试做的比数字更大 - 我相信这会将数字转换为字符串并在两者之间进行序数字符串比较。删除该行。
原始答案,后人:
完成第一行......
((6-1)/ 1)* 100 = 500
500大于-50
所以我希望它能达到第一个条件。