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