你知道我怎么能得到这个功能来产生正确的结果吗?

时间:2013-09-12 15:06:24

标签: asp.net vb.net

以下功能可以计算用户对问题的回答。

如果用户未参加测试,请显示用户未参加测试的消息。

如果用户的回答介于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

2 个答案:

答案 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