如何检查一个值是不是是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,而不是单独的floatinteger 类型。更多关于找出 JavaScript 中的内容:Say what?

如果它可能是其他东西(如字符串)但您想尽可能将其转换为数字,您可以使用NumberparseFloat

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 中的子字符串?

如何检查一个变量是不是是 JavaScript 中的一个数组?

如何根据 JavaScript 中的值检查对象是不是在数组中?

检查字典中的浮点值以了解 Python 中的条件

在 Javascript 中,如何检查数组是不是有重复值?