Asp.net 你知道我怎样才能得到这个函数来产生正确的结果吗?

Asp.net 你知道我怎样才能得到这个函数来产生正确的结果吗?,asp.net,vb.net,Asp.net,Vb.net,下面的函数用于计算用户对问题的答案 如果用户尚未参加测试,则显示一条消息,说明用户尚未参加测试 如果用户的回答介于0%和75%之间,请让用户知道他/她不符合最低要求 如果用户的分数大于75%,则表示用户已通过 问题是,如果用户的分数为0,则用户会收到一条消息,表示他/她没有参加考试,这是错误的 你知道我该怎么纠正吗 提前多谢 Public Function getStatus(ByVal value As Object) As String Dim myRow As FormViewRo

下面的函数用于计算用户对问题的答案

如果用户尚未参加测试,则显示一条消息,说明用户尚未参加测试

如果用户的回答介于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
公共函数getStatus(ByVal值作为对象)作为字符串
将myRow设置为FormViewRow=scoreGridView.Row
将消息设置为字符串=“”
Dim lbscore As Label=DirectCast(myRow.FindControl(“百分比标签”),标签)
如果Decimal.Parse(value)>=0,并且Decimal.Parse(value)<75,则
Message=“您的分数不符合最低要求”
ElseIf Decimal.Parse(值)>=75然后
Message=“祝贺您通过了考试!”
其他的
Message=“您尚未参加此调查的测试”
如果结束
回信
端函数

你想实现什么

在您的代码中,当值为0时,它将返回“您的分数不符合最低要求”


如果值小于0,则返回“您尚未参加本次调查的测试”。

使用
d
文字后缀作为您的值,以确保它们作为
十进制类型进行比较,如下所示:

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
If Decimal.Parse(value) >= Decimal.Zero AndAlso Decimal.Parse(value) < 75d Then

当用户未参加测试时,将值设置为NULL或空。首先检查,然后进行十进制解析测试。。。如果你认为字符串“0”意味着两件事,那么你就处于一个受伤的世界。(“”可能有不同的含义)问问自己,零意味着什么?没有参加考试或考试,但得分为零?^^第一条评论应该是被接受的答案。我会把它作为有用的答案来检查,以表示我的感激。这些都是主观判断,我选择卡尔的解决方案作为最佳解决方案,但这并不意味着其余的都不是好的解决方案。非常感谢。工作得很好。非常感谢所有提出我问题的人。