【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
如何找到数字为float
或integer
?
1.25 --> float
1 --> integer
0 --> integer
0.25 --> float
#1楼
您可以使用一个简单的正则表达式:
function isInt(value) {
var er = /^-?[0-9]+$/;
return er.test(value);
}
或者您也可以根据需要使用以下功能。 它们由PHPJS Project开发。
is_int()
=>检查变量类型是否为整数,并且其内容是否为整数
is_float()
=>检查变量类型是否为float以及其内容是否为float
ctype_digit()
=>检查变量类型是否为字符串,并且其内容是否只有十进制数字
更新1
现在它也检查负数,感谢@ChrisBartley评论 !
#2楼
确实不必这么复杂。 整数的parseFloat()和parseInt()等效项的数值将相同。 因此,您可以这样做:
function isInt(value){
return (parseFloat(value) == parseInt(value)) && !isNaN(value);
}
然后
if (isInt(x)) // do work
这也将允许进行字符串检查,因此并不严格。 如果要一个强类型的解决方案(又名,不能与字符串一起使用):
function is_int(value){ return !isNaN(parseInt(value * 1) }
#3楼
function isInt(n)
{
return n != "" && !isNaN(n) && Math.round(n) == n;
}
function isFloat(n){
return n != "" && !isNaN(n) && Math.round(n) != n;
}
适用于所有情况。
#4楼
在Java脚本中,所有数字在internally 64 bit floating point
都是internally 64 bit floating point
,与Java中的double相同。 javascript中没有不同的类型,所有类型均由number
表示。 因此,您将无法进行检查instanceof
。 但是,您可以使用上面给出的解决方案来确定它是否为分数。 Java脚本的设计人员认为,使用单一类型的脚本可以避免大量的类型转换错误。
#5楼
带有零小数部分(例如1.0、12.00、0.0)的任何Float数字都隐式转换为Integer,因此无法检查它们是否为Float。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3146747