繁体   English   中英

如何检查字符串是否不是浮点数?

[英]How do I check if a string is NOT a floating number?

var num = "10.00";
if(!parseFloat(num)>=0)
{
    alert("NaN");
}
else
{
    alert("Number");
}

我想检查一个值是不是浮点数,但上面的代码总是返回NaN ,任何想法我做错了什么?

!parseFloat(num)false因此您要比较false >= 0

你可以这样做:

if(! (parseFloat(num)>=0))

但这样做会更具可读性:

if(parseFloat(num) < 0)

parseFloat返回float或NaN ,但是您正在应用Boolean NOT运算符! 然后将它与另一个浮点数进行比较。

你可能想要更像的东西:

var num = "10.0";
var notANumber = isNaN(parseFloat(num));

因为! 优先级高于>= ,所以你的代码确实如此

!parseFloat(num) ,这是false

然后

>= 0false被强制为0 0 >= 0为真,因此alert("NaN")

https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence

function isFloat(value) {
  if(!val || (typeof val != "string" || val.constructor != String)) {
  return(false);
  }
  var isNumber = !isNaN(new Number(val));
     if(isNumber) {
        if(val.indexOf('.') != -1) {
           return(true);
        } else {
           return(false);
        }
     } else {
  return(false);
 }
}

REF

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM