我需要能够判断整数是一个整数还是有小数。因此13将是一个整数,23.23将是小数。
所以喜欢;
If 13 is a whole number then
msgbox("It's a whole number, with no decimals!")
else
msgbox("It has a decimal.")
end if
答案 0 :(得分:19)
If x = Int(x) Then
'x is an Integer!'
Else
'x is not an Integer!'
End If
答案 1 :(得分:10)
您可以检查号码的楼层和天花板是否相同。如果它等于,那么它是一个整数,否则它将是不同的。
If Math.Floor(value) = Math.Ceiling(value) Then
...
Else
...
End If
答案 2 :(得分:4)
根据您需要确定一种类型是否为整数或其他类型的事实判断我假设该数字包含在字符串中。如果是这样,您可以使用Integer.TryParse方法确定该值是否为整数,如果成功,它也将输出为整数。如果这不是您正在做的事情,请通过更多信息更新您的问题。
Dim number As String = 34.68
Dim output As Integer
If (Integer.TryParse(number, output)) Then
MsgBox("is an integer")
Else
MsgBox("is not an integer")
End If
编辑:
如果您使用十进制或其他类型来包含您的数字,则可以使用相同的想法,如下所示。
Option Strict On
Module Module1
Sub Main()
Dim number As Decimal = 34
If IsInteger(number) Then
MsgBox("is an integer")
Else
MsgBox("is not an integer")
End If
If IsInteger("34.62") Then
MsgBox("is an integer")
Else
MsgBox("is not an integer")
End If
End Sub
Public Function IsInteger(value As Object) As Boolean
Dim output As Integer ' I am not using this by intent it is needed by the TryParse Method
If (Integer.TryParse(value.ToString(), output)) Then
Return True
Else
Return False
End If
End Function
End Module
答案 3 :(得分:1)
我假设你的初始值是一个字符串。
1 ,首先检查字符串值是否为数字。
2 ,比较号码的楼层和天花板。如果它是相同的,你有一个整数。
我更喜欢使用扩展方法。
''' <summary>
''' Is Numeric
''' </summary>
''' <param name="p_string"></param>
''' <returns></returns>
''' <remarks></remarks>
<Extension()>
Public Function IsNumeric(ByVal p_string As String) As Boolean
If Decimal.TryParse(p_string, Nothing) Then Return True
Return False
End Function
''' <summary>
''' Is Integer
''' </summary>
''' <param name="p_stringValue"></param>
''' <returns></returns>
<Extension()>
Public Function IsInteger(p_stringValue As String) As Boolean
If Not IsNumeric(p_stringValue) Then Return False
If Math.Floor(CDec(p_stringValue)) = Math.Ceiling(CDec(p_stringValue)) Then Return True
Return False
End Function
示例强>:
Dim _myStringValue As String = "200"
If _myStringValue.IsInteger Then
'Is an integer
Else
'Not an integer
End If
答案 4 :(得分:0)
Dim Num As String = "54.54" If Num.Contains(".") Then MsgBox("Decimal") 'Do Something
答案 5 :(得分:0)
if x Mod 1 = 0
'x is an Integer!'
Else
'x is not an Integer!'
End If