试图过滤大于或等于(> =)-50%

时间:2016-04-06 17:41:27

标签: powershell

我试图在行的数组集合中过滤大于或等于-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 '+' 
}

输出:

Sample Screenshot of the Output

1 个答案:

答案 0 :(得分:0)

这条线的目的是什么?

$Rate = "{0:N0}" -f $Rate

您正在将$Rate转换为字符串,但尝试做的比数字更大 - 我相信这会将数字转换为字符串并在两者之间进行序数字符串比较。删除该行。

原始答案,后人:

完成第一行......

((6-1)/ 1)* 100 = 500

500大于-50

所以我希望它能达到第一个条件。