0

我在表单 (lblIRafr) 上有一个标签,我为其分配了一个值,如下所示:

lblIRafr.Text = irAverageFailureRate & "%"

我正在使用以下代码生成要分配给此标签的值:

Dim irAverageFailureRate As String = (CDbl(irTotalFailureRate / 2).ToString("0.00"))

然后我正在格式化标签,如果 irAverageFailureRate 高于 3,它将使文本变为粗体和红色,否则文本将变为粗体和绿色。我这样做如下:

If irAverageFailureRate > "3.00" Then
        Dim l As Label = lblIRafr
        l.Font.Bold = True
        l.ForeColor = Drawing.Color.Red
    Else
        Dim l As Label = lblIRafr
        l.Font.Bold = True
        l.ForeColor = Drawing.Color.Green
    End If

这在 0 到 9.99 之间的数字上运行良好,但是一旦 irAverageFailureRate 达到 10.0,标签就会被格式化为粗体和绿色而不是红色,我不完全确定为什么。

感激地收到任何帮助。谢谢

4

1 回答 1

2

因为您正在将字符串与字符串进行比较。

“10.00”小于“3.00”,因为第一个字符“1”小于“3”

“2.00”小于“3.00”,因为第一个字符“2”小于“3”

“9.99”大于“3.00”,因为第一个字符“9”大于“3”

在比较之前转换irAverageFailureRate为双精度:

If Double.Parse(irAverageFailureRate) > 3.0 then
    ' red
Else
    ' green
End If
于 2013-06-27T11:04:25.837 回答