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编写实现从键盘输入一个字符串,判断其是不是为浮点数?