Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将整数计算为十进制数的函数_Vb.net_.net 2.0 - Fatal编程技术网

Vb.net 将整数计算为十进制数的函数

Vb.net 将整数计算为十进制数的函数,vb.net,.net-2.0,Vb.net,.net 2.0,我编写了一个相当原始的共享函数来计算输入到文本框中的数值。用户可以输入一个十进制或整数,我计算的范围是5.0到14.0。if语句的前两部分返回true,但当输入整数且没有小数点时,最后一部分返回false,表示小数位数。如何修改此函数以在所有路径上返回true Public Shared Function CheckDecimalValue(ByVal txtbox As TextBox) As Boolean Dim returnValue As Boolean = True

我编写了一个相当原始的共享函数来计算输入到文本框中的数值。用户可以输入一个十进制或整数,我计算的范围是5.0到14.0。if语句的前两部分返回true,但当输入整数且没有小数点时,最后一部分返回false,表示小数位数。如何修改此函数以在所有路径上返回true

Public Shared Function CheckDecimalValue(ByVal txtbox As TextBox) As Boolean
    Dim returnValue As Boolean = True
    Dim txtAsDecimal As Decimal = CType(txtbox.Text, Decimal)
    Dim decimalAsString As String = CType(txtAsDecimal, String)
    Dim indexOfDecimalPoint As Integer = decimalAsString.IndexOf(".")
    Dim numberOfDecimals As Integer = decimalAsString.Substring(indexOfDecimalPoint + 1).Length

    If txtAsDecimal < 5 Then
        returnValue = False
    ElseIf txtAsDecimal > 14 Then
        returnValue = False
    ElseIf numberOfDecimals > 1 Then
        returnValue = False
    End If

    Return returnValue
End Function
真的,就用吧

如果用户在其中使用不同的区域性。不是小数分隔符,您的代码无论如何都会中断

例如:

真的,就用吧

如果用户在其中使用不同的区域性。不是小数分隔符,您的代码无论如何都会中断

例如:


强烈建议改为使用:

例如:


强烈建议改为使用:

例如:


我已经编辑了你的标题。请看,如果共识是否定的,他们就不应该这样做。你为什么要检查小数点后的位数?你也许可以删除那张支票。我已经编辑了你的标题。请看,如果共识是否定的,他们就不应该这样做。你为什么要检查小数点后的位数?你可能只需要删除那张支票。
Public Shared Function CheckDecimalValue(txtbox As TextBox) As Boolean
    Dim tmp As Decimal
    Return Decimal.TryParse(txtbox.Text, tmp) AndAlso tmp >= 5 AndAlso tmp <= 14
End Function
Public Shared Function CheckDecimalValue(ByVal txtbox As TextBox) As Boolean

    Dim val as Decimal

    If Not Decimal.TryParse(txtbox.Text,val) Then Return False

    If val < 5 Or val > 14 Then Return False

    'Space for other checks

    Return True

End Function