如何检查一个值是不是是javascript中的浮点数[重复]
Posted
技术标签:
【中文标题】如何检查一个值是不是是javascript中的浮点数[重复]【英文标题】:How can I check to see if a value is a float in javascript [duplicate]如何检查一个值是否是javascript中的浮点数[重复] 【发布时间】:2011-10-17 13:21:42 【问题描述】:我想检查我的输入是否为浮点数。
有点像……
if (typeof (input) == "float")
do something....
这样做的正确方法是什么?
【问题讨论】:
请看***.com/q/3885817/239241 【参考方案1】:试试parseFloat
parseFloat() 函数解析参数(将其转换为 如果需要,首先是字符串)并返回一个浮点数。
if(!isNaN(parseFloat(input)))
// is float
【讨论】:
如果我在输入中传递整数而不是浮点数会怎样?!Number.isInteger(val)
- developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 或查看本页顶部的“已经有答案”链接
@MrColes:您的评论在这种情况下是错误的。 OP 专门询问了如何识别浮点数。 !Number.isInteger('lorem ipsum')
也返回 true。如 MDN 所述,Number.isInteger() 方法确定传递的值是否为 整数。
parseFloat("2A") 返回2,不是NaN,所以这是不正确的。
@thienDX: 2A 是一个十六进制数。 MDN 注释,对于大于 10 的基数,英文字母表示大于 9 的数字。例如,对于十六进制数(以 16 为基数),使用 A 到 F。【参考方案2】:
正如斯普拉夫所说,您可以使用typeof
检查输入的类型。在这种情况下
if (typeof input === "number")
// It's a number
JavaScript 只有Number
,而不是单独的float
和integer
类型。更多关于找出 JavaScript 中的内容:Say what?
如果它可能是其他东西(如字符串)但您想尽可能将其转换为数字,您可以使用Number
或parseFloat
:
input = Number(input);
if (!isNaN(input))
// It was already a number or we were able to convert it
更多:
Number
called as a function
isNaN
parseFloat
【讨论】:
【参考方案3】:typeof foo === "number"
所有数字都是 Javascript 中的浮点数。请注意,类型名称用引号引起来,它是一个字符串,并且都是小写的。另请注意,typeof
是运算符,而不是函数,不需要括号(尽管它们是无害的)。
【讨论】:
以上是关于如何检查一个值是不是是javascript中的浮点数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何检查一个对象是不是至少包含一个键,其值包含 JavaScript 中的子字符串?
如何检查一个变量是不是是 JavaScript 中的一个数组?