Vb.net VB2010如何判断数字是否为整数
我需要知道整数是整数还是小数。13是一个整数,23.23是一个小数 如此相似Vb.net VB2010如何判断数字是否为整数,vb.net,numbers,integer,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 您可以检查数字的地板和天花板是否相同。如果它等于,那么它就是一个整数,否则它就不同了 If Math.Floor(value) = Math.Ceiling(value) Then .
If 13 is a whole number then
msgbox("It's a whole number, with no decimals!")
else
msgbox("It has a decimal.")
end if
您可以检查数字的地板和天花板是否相同。如果它等于,那么它就是一个整数,否则它就不同了
If Math.Floor(value) = Math.Ceiling(value) Then
...
Else
...
End If
根据你有一种类型,你需要确定它是整数还是另一种类型,我假设这个数字包含在一个字符串中。如果是这样,您可以使用该方法确定该值是否为整数,如果成功,它也会将其作为整数输出。如果这不是你正在做的,请用更多信息更新你的问题
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
编辑:
如果您使用十进制或其他类型来包含数字,则可以使用相同的想法,n类似于这样的内容
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
Dim Num As String=“54.54”
如果Num.Contains(“.”),则MsgBox(“十进制”)
“做点什么
我假设你的初始值是一个字符串 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
您用来包含数字的变量是什么类型的?是字符串吗?对不起,我已经更新了原始帖子。输入总是一个整数,但我需要确定它是一个整数还是整数有小数点。@user2691270 an不能有小数点,如果有小数点,它可以是小数点、双精度、字符串或单精度,或者是沿着这些线的其他值。这个数字是从哪里生成的,如果是一个文本框,它可能是一个字符串。@MarkHall:如果您对结果不感兴趣,那么TryParse不需要“helper”变量。您可以传递一个常量(如0、-1、42或其他),也可以传递“nothing”(整数的默认值为0)。作为旁注:由于OP只指定了“整数”,我建议使用biginger.TryParse。一些详细说明和解释将提高此答案的质量。此答案是唯一检查数字(作为字符串)格式是否正确的答案。其他答案等于1到1.00,这是错误的。当x是字符串时会发生什么?i、 e.“2”、“2.2”、“3.14”?甚至更好的是,当x大于21亿时会发生什么?整数(即表ID)可以而且确实超过了可以存储在整数中的最大值(@21亿)。我假设严格键入。如果数字对于变量来说太大,则会出现溢出异常。或者,如果
Math.Truncate(value)=value,则可以尝试
Dim Num As String = "54.54"
If Num.Contains(".") Then MsgBox("Decimal")
'Do Something
''' <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
if x Mod 1 = 0
'x is an Integer!'
Else
'x is not an Integer!'
End If