我在表单(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时,标签格式为粗体和绿色而不是红色,我不完全确定原因。
感激不尽的任何帮助。感谢
答案 0 :(得分: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