以下功能可以计算用户对问题的回答。
如果用户未参加测试,请显示用户未参加测试的消息。
如果用户的回答介于0%和75%之间,请让用户知道他/她不符合最低要求。
如果用户的分数大于75%,则表示用户已通过。
问题是,如果用户的分数为0,那么用户会收到一条消息,表明他/她没有参加考试而这是错误的。
我知道如何纠正这个问题吗?
提前多多感谢
Public Function getStatus(ByVal value As Object) As String
Dim myRow As FormViewRow = scoreGridView.Row
Dim Message As String = ""
Dim lbscore As Label = DirectCast(myRow.FindControl("PercentLabel"), Label)
If Decimal.Parse(value) >= 0 AndAlso Decimal.Parse(value) < 75 Then
Message = "<span style='color:red;font-weight:bold'>Your score does not meet minimum requirement</span>"
ElseIf Decimal.Parse(value) >= 75 Then
Message = "<span style='color:green;font-weight:bold'>Congratulations you have passed the test!</span>"
Else
Message = "You have not yet taken the test for this survey"
End If
Return Message
End Function
答案 0 :(得分:2)
根据您的代码,当值为0时,它将返回“您的分数不符合最低要求”。
如果值<&lt;并返回“您尚未参加此调查的测试”。 0
答案 1 :(得分:1)
为您的值使用d
字面值后缀,以确保它们被比较为Decimal
类型,如下所示:
Public Function getStatus(ByVal value As Object) As String
Dim myRow As FormViewRow = scoreGridView.Row
Dim Message As String = ""
Dim lbscore As Label = DirectCast(myRow.FindControl("PercentLabel"), Label)
If Decimal.Parse(value) >= 0d AndAlso Decimal.Parse(value) < 75d Then
Message = "<span style='color:red;font-weight:bold'>Your score does not meet minimum requirement</span>"
ElseIf Decimal.Parse(value) >= 75d Then
Message = "<span style='color:green;font-weight:bold'>Congratulations you have passed the test!</span>"
Else
Message = "You have not yet taken the test for this survey"
End If
Return Message
End Function
另外,对于零(十进制)检查,您可以使用Decimal.Zero
,如下所示:
If Decimal.Parse(value) >= Decimal.Zero AndAlso Decimal.Parse(value) < 75d Then