VB2010如何判断数字是否为整数

时间:2013-09-24 00:59:32

标签: vb.net numbers integer

我需要能够判断整数是一个整数还是有小数。因此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

6 个答案:

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