JS判断是不是为数字,是不是为整数,是不是为浮点数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS判断是不是为数字,是不是为整数,是不是为浮点数相关的知识,希望对你有一定的参考价值。

参考技术A 正则表达式方法function checkRate(input)var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ if (!re.test(input.rate.value))alert("请输入数字(例:0.02)");input.rate.focus();return false;下面为普通函数写法function BASEisNotNum(theNum)//判断是否为数字if (BASEtrim(theNum)=="")return true;for(var i=0;i<theNum.length;i++)oneNum=theNum.substring(i,i+1);if (oneNum<"0" || oneNum>"9")return true;return false;function BASEisNotInt(theInt)//判断是否为整数theInt=BASEtrim(theInt);if ((theInt.length>1 && theInt.substring(0,1)=="0") || BASEisNotNum(theInt))return true;return false;function BASEisNotFloat(theFloat)//判断是否为浮点数len=theFloat.length;dotNum=0;if (len==0)return true;for(var i=0;i<len;i++)oneNum=theFloat.substring(i,i+1);if (oneNum==".")dotNum++;if ( ((oneNum<"0" || oneNum>"9") && oneNum!=".") || dotNum>1)return true;if (len>1 && theFloat.substring(0,1)=="0")if (theFloat.substring(1,2)!=".")return true;return false;isNaN 函数isNaN(expression:Object) : Boolean计算参数,如果值为 NaN(非数字),则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。可用性:Flash Player 5;ActionScript 1.0参数expression:Object - 要计算的布尔值、变量或其它表达式。返回Boolean - 一个布尔值。例子:if(isNaN(document.login.imgcode.value))alert('验证码必须是数字!')本回答被提问者采纳

VB2010 如何判断一个数字是不是为整数

【中文标题】VB2010 如何判断一个数字是不是为整数【英文标题】:VB2010 How to tell if a number is a whole integerVB2010 如何判断一个数字是否为整数 【发布时间】:2013-09-29 01:29:10 【问题描述】:

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

【问题讨论】:

你用来包含号码的变量是什么类型的,是字符串吗? 【参考方案1】:

您可以检查号码的下限和上限是否相同。如果相等,那么它是一个整数,否则它会不同。

If Math.Floor(value) = Math.Ceiling(value) Then
...
Else
...
End If

【讨论】:

或者你可以试试Math.Truncate(value) = value【参考方案2】:

根据您需要确定它是整数还是另一种类型这一事实来判断,我假设该数字包含在字符串中。如果是的话可以使用Integer.TryParse方法判断值是否为Integer,如果成功也会输出为整数。如果这不是您正在做的,请用更多信息更新您的问题。

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

编辑:

如果您使用 Decimal 或其他类型来包含您的数字,您可以使用相同的想法,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

【讨论】:

对不起,我已经更新了原帖。输入总是一个整数,但我需要确定它是整数还是整数是否有小数位。 @user2691270 和 Integer 不能有小数点,如果有小数点,它可以是 Decimal、Double、String 或 Single 或类似的东西。这个数字是从哪里生成的,如果是文本框,它可能是一个字符串。 @MarkHall:如果您对结果不感兴趣,则不需要 TryParse 的“帮助器”变量。您可以传递一个常量(如 0、-1、42 或其他),也可以传递“无”(对于整数,默认为 0)。作为旁注:由于 OP 仅指定“整数”,我建议使用 BigInteger.TryParse。【参考方案3】:
If x = Int(x) Then 
  'x is an Integer!'
Else
  'x is not an Integer!'
End If

【讨论】:

当 x 是一个字符串时会发生什么?即“2”、“2.2”、“3.14”?或者更好的是,当 x 大于 21 亿时会发生什么?整数(即表 ID)可以并且确实超过了您可以存储在 Int 中的最大值(@ 21 亿)。 我假设严格打字。如果数字对于变量来说太大,你会得到一个溢出异常。【参考方案4】: Dim Num As String = "54.54" If Num.Contains(".") Then MsgBox("Decimal") '做一点事

【讨论】:

一些详细说明和解释会提高这个答案的质量。 此答案是唯一检查数字(作为字符串)格式是否正确的答案。其他答案等于 1 到 1.00,这是错误的。【参考方案5】:

我假设你的初始值是一个字符串。

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

【讨论】:

【参考方案6】:
if x Mod 1 = 0
  'x is an Integer!'
Else
  'x is not an Integer!'
End If

【讨论】:

以上是关于JS判断是不是为数字,是不是为整数,是不是为浮点数的主要内容,如果未能解决你的问题,请参考以下文章

用java编写实现从键盘输入一个字符串,判断其是不是为浮点数?

检查字符串是不是可以在 Python 中转换为浮点数

js支持的整数的有效范围

数字后带有减号的 CSV 文件。 “ValueError:无法将字符串转换为浮点数:”

js中如何判断两个浮点数是不是相等

js判断是不是是正整数,js判断是不是是数字