parseFloat进行统计以及对NaN的处理,js判断输入是
分类:新闻中心

isNaN函数

今天使用isNaN()函数判断是否是数字时遇到的问题,当变量是空串时,isNaN()的返回值还是false,但空串却不是数据,查了一下,才知道原来isNaN()把空串或空格作0处理的。

这篇文章介绍了js判断输入是否为数字的具体实例,有需要的朋友可以参考一下

今天遇到这么一个需求:

返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。
NaN 即 Not a Number
isNaN(numValue)

 

<html xmlns="http://www.3lian.com/">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js判断输入是否为数字-www.jbxue.com</title>
<script language="javascript教程">
/**
* 判断输入是否数字
* by www.jbxue.com
*/
function ischeckNum()
{
var num = document.getElementById('isnum').value;
if( num )
{
if( !isNaN( num ) )
{
alert('是数字');
return false;
}
else
{
alert('你输入的数据不是数字');
myfm.isnum.select();
return false;
}
}
else
{
alert('需输入内容');
myfm.isnum.focus();
}
}
</script>
</head>
<body>
<form name="myfm" method="post" action="">
<label>
<input type="text" name="isnum" id="isnum">
</label>
<label>
<input type="button" name="Submit" value="检测是否为数字" onClick="ischeckNum();">
</label>
</form>
</body>
</html>

  对数据进行统计,可是在统计的时候parseFloat的时候出来一个NaN。后来用isNaN判断,如果是NaN,就给其设置一个初值.

必选项 numvalue 参数为要检查是否为 NAN 的值。

isNaN  返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。

注明:在javascript中要判断用户输入的内容是否为数字我们只要用isNaN来判断一下就OK了。
isNaN(numValue) 其中必选项 numvalue 参数为要检查是否为 NAN 的值
如果值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false
使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的返回值。还有一种办法,变量可以与它自身进行比较。 如果比较的结果不等,那么它就是 NaN 。 这是因为 NaN 是唯一与自身不等的值。

 

说明

  NaN 即 Not a Number
  isNaN(numValue)

 

假如值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false 。 使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的输入值。
还有一种办法,变量可以与它自身进行比较。 假如比较的结果不等,那么它就是 NaN 。 这是因为 NaN 是唯一与自身不等的值。
isNaN函数用法示例:比如我有一个textbox用于录入数字型的数据,在提交表单的时候我要验证该textbox中的值是否为数据,那么我们可以使用isNaN函数。

  必选项 numvalue 参数为要检查是否为 NAN 的值。

先看对两个方法的解释

复制代码 代码如下:

  说明
  假如值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false 。 使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的输入值。 
  还有一种办法,变量可以与它自身进行比较。 假如比较的结果不等,那么它就是 NaN 。 这是因为 NaN 是唯一与自身不等的值。 
  isNaN函数用法示例:比如我有一个textbox用于录入数字型的数据,在提交表单的时候我要验证该textbox中的值是否为数据,那么我们可以使用isNaN函数。
  function checkValue()
  {
  if(isNaN(document.all.textbox.value))
  {
  alert("请用数字录入!");
  return false;
  }
  }
  isNaN的典型使用是为parseInt和parseFloat方法的输入值进行一个提前的检验,但这种简单结果并不好。虽然可能有一些教课书上也这么说,甚至于错误地认为其是一个检查parseInt和parseFloat的返回值,这样都是错误的。
  parseInt与parseFloat是将一个字符型按数字进行一个转化。但自身还有错误处理的,如果你的输入值不是一个数字时,则parseInt和parseFloat返回一个消息:“is not number”,但一般的情况下我们都是对一个数字样式的字符串进行转换的,谁会无聊到转化非数字型的呢?所以你输入的参数是否合格,可以先进行一次isNaN检查的。
  但如果我们有意识的以下行为,事先是不能用isNaN进行检查的,数字开头中间含有字母时,如果用isNaN进行检查是通不过的。
  ***如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。

 

function checkValue()
{
if(isNaN(document.all.textbox.value))
{
alert("请用数字录入!");
return false;
}
}


parseFloat:

isNaN的典型使用是为parseInt和parseFloat方法的输入值进行一个提前的检验,但这种简单结果并不好。虽然可能有一些教课书上也这么说,甚至于错误地认为其是一个检查parseInt和parseFloat的返回值,这样都是错误的。

  两个函数是独立的,并不会谁为谁而生存,isNaN与parseInt/parseFloat并没有关系

返回由字符串转换得到的浮点数。

parseInt与parseFloat是将一个字符型按数字进行一个转化。但自身还有错误处理的,如果你的输入值不是一个数字时,则parseInt和parseFloat返回一个消息:“is not number”,但一般的情况下我们都是对一个数字样式的字符串进行转换的,谁会无聊到转化非数字型的呢?所以你输入的参数是否合格,可以先进行一次isNaN检查的。

parseFloat(numString)

但如果我们有意识的以下行为,事先是不能用isNaN进行检查的,数字开头中间含有字母时,如果用isNaN进行检查是通不过的。

必选项 numString 参数是包含浮点数的字符串。

如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
两个函数是独立的,并不会谁为谁而生存,isNaN与parseInt/parseFloat并没有关系。

说明

parseFloat 方法返回与 numString 中保存的数相等的数字表示。如果 numString 的前缀不能解释为浮点数,则返回 NaN (而不是数字)。

parseFloat("abc")      // 返回 NaN。
parseFloat("1.2abc")   // 返回 1.2。

可以用 isNaN 方法检测 NaN

 

parseInt 方法

返回由字符串转换得到的整数。

parseInt(numString, [radix])

参数

numString

必选项。要转换为数字的字符串。

radix

可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

说明

parseInt 方法返回与保存在 numString 中的数字值相等的整数。如果 numString 的前缀不能解释为整数,则返回 NaN(而不是数字)。

parseInt("abc")     // 返回 NaN。
parseInt("12abc")   // 返回 12。

可以用 isNaN 方法检测 NaN。 

 

 

isNaN 方法

返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。

isNaN(numValue)

必选项 numvalue 参数为要检查是否为 NAN 的值。

说明

如果值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false 。 使用这个函数的典型情况是检查 parseIntparseFloat 方法的返回值。

还有一种办法,变量可以与它自身进行比较。 如果比较的结果不等,那么它就是 NaN 。 这是因为 NaN 是唯一与自身不等的值。  

 

 

 

最后附一个isNaN+parseFloat统计的例子:

var conutAllInfo=function(){
    var dan_numQues=parseFloat($(".danxuanBigTitle .numQues").text());// 单选题数
    var dan_score=parseFloat($(".danxuanBigTitle .el_modifiedGrade").val());// 单选分值
    var dan_total=parseFloat($(".danxuanBigTitle .numTotal").text());// 单选总分
    var duo_numQues=parseFloat($(".duoxuanBigTitle .numQues").text());// 多选总数
    var duo_score=parseFloat($(".duoxuanBigTitle .el_modifiedGrade").val());// 多选分值
    var duo_total=parseFloat($(".duoxuanBigTitle .numTotal").text());// 多选总分
    var pan_numQues=parseFloat($(".panduanBigTitle .numQues").text());// 判断总数
    var pan_score=parseFloat($(".panduanBigTitle .el_modifiedGrade").val());// 判断分值
    var pan_total=parseFloat($(".panduanBigTitle .numTotal").text());// 判断总分
    $("#dan_num").text(validateNaN(dan_numQues));
    $("#dan_score").text(validateNaN(dan_score));
    $("#dan_total").text(validateNaN(dan_total));
    $("#duo_num").text(validateNaN(duo_numQues));
    $("#duo_score").text(validateNaN(duo_score));
    $("#duo_total").text(validateNaN(duo_total));
    $("#pan_num").text(validateNaN(pan_numQues));
    $("#pan_score").text(validateNaN(pan_score));
    $("#pan_total").text(validateNaN(pan_total));
    $("#all_total").text(parseFloat($("#dan_total").text())+parseFloat($("#duo_total").text())+parseFloat($("#pan_total").text()));
    $("#myModal").modal({backdrop: "static", keyboard: false});

}
// 验证是否是数字,不是数字返回零
var validateNaN=function(num){
    if(isNaN(num)){
        return 0;
    }else return num;
}

 

结果:

图片 1

 

本文由美高梅网址发布于新闻中心,转载请注明出处:parseFloat进行统计以及对NaN的处理,js判断输入是

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文