isNaN+parseFloat进行统计以及对NaN的处理【JS验证数字】
今天遇到这么一个需求:
对数据进行统计,可是在统计的时候parseFloat的时候出来一个NaN。后来用isNaN判断,如果是NaN,就给其设置一个初值.
先看对两个方法的解释
parseFloat:
返回由字符串转换得到的浮点数。
parseFloat(numString)
必选项 numString 参数是包含浮点数的字符串。
说明
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 。 使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的返回值。
还有一种办法,变量可以与它自身进行比较。 如果比较的结果不等,那么它就是 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;
}
结果:

isNaN+parseFloat进行统计以及对NaN的处理【JS验证数字】的更多相关文章
- 函数isNaN() parseFloat() parseInt() Math对象
isNaN() 定义和用法 isNaN() 函数用于检查其参数是否是非数字值. isNaN(x) x 是特殊的非数字值 NaN(或者能被转换为这样的值) console.log(isNaN(NaN)) ...
- python将nan, inf转为特定的数字
最近,处理两个矩阵的点除,得到结果后,再作其他的计算,发现有些内置的函数不work:查看得到的数据,发现有很多nan和inf,导致python的基本函数运行不了,这是因为在除的过程中分母出现0的缘故. ...
- js null, undefined, NaN, ‘’, false, 0, ==, === 全验证
<html> <head> <meta charset="utf-8" /> </head> <body> <in ...
- JavaScript 类型判断 —— typeof 以及 instanceof 中的陷阱
JavaScript中基本类型包含Undefined.Null.Boolean.Number.String以及Object引用类型.基本类型可以通过typeof来进行检测,对象类型可以通过instan ...
- 3 数据分析之Numpy模块(2)
数组函数 通用元素级数组函数通用函数(即ufunc)是一种对ndarray中的数据执行元素级的运算.我们可以将其看做是简单的函数(接收一个或多个参数,返回一个或者多个返回值). 常用一元ufunc: ...
- 20个超实用的JavaScript技巧及最佳实践
1.第一次给变量赋值时,别忘记var关键字 给一个未声明的变量赋值,该变量会被自动创建为全局变量,在JS开发中,应该避免使用全局变量. 2.使用===替换== 并且永远不要使用=或!=. ...
- 【javascript】详解变量,值,类型和宿主对象
前言 我眼中的<javascript高级程序设计> 和<你不知道的javascript>是这样的:如果<javascript高级程序设计>是本教科书的话, < ...
- 【你不知道的javaScript 中卷 笔记1】javaScript中的类型与值
一.类型与值 1.0 javaScript 七种内置类型: 空值(null) 未定义(undefined) 布尔值( boolean) 数字(number) 字符串(string) 对象(object ...
- JQuery数字类型验证正则表达式
有朋友整了一些关于js与jquery的数字类型验证正则表达式代码,下面我给大家再整理一下. 这里包括了数字验证实现与测试实例了,大家可参考. js验证数字正则表达式 代码如下: //检测是否为数字和小 ...
随机推荐
- GeoTools坐标转换(投影转换和仿射变换)
GeoTools是在java下的gis开源软件,以下介绍坐标转换的两种方法:投影转换和仿射变换 投影转换 这里以xian80经纬度坐标转xian80,3度分带 111中央经线平面坐标为例 转换函数如下 ...
- TabLayout.Tab(自定义)点击事件
TabLayout是官方design包中的一个布局控件,这里不介绍它的基本使用,只是解决Tab(自定义)点击事件. //获取Tab的数量 Int tabCount = tabLayout.getTab ...
- 6 Specialzed layers 特殊层 第二部分 读书笔记
CAGradientLayer CAGradientLayer is used to generate a smooth gradient between two or more colors. ...
- How to proxy a web site by apache2 in Ubuntu
Install apache2 To execute the install command in terminal: sudo apt-get install apache2 Then, we ca ...
- js中json处理总结之JSON.parse
踩过的坑都将成为路上的风景.队友在cookie中已存以下值: address_info {"address_name":"人民大会堂","...lng ...
- 用JS获取Html中所有图片文件流然后替换原有链接
function displayHtmlWithImageStream(bodyHtml) { var imgReg = /<img.*?(?:>|\/>)/gi; var arr ...
- upupw nginx服务器 rewrite设置
最近开始尝试使用upupw的Nginx套件做开发,感觉还挺不错的,也遇到了一些问题,决定在这里记录一下,同时也希望可以帮助到一些人. 用习惯了Apache,改用Nginx之后会有些不适应,但是咬咬牙就 ...
- mybatis+oracle 完成插入数据库,并将主键返回的注意事项
mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_ ...
- HashSet LinkedHashSet TreeSet 分析
1.HashSet分析 hashset 底层是hash表,就是hashMap,是无序的,唯一的.也就是说,它的底层其实就是一个HashMap key 值的组成值.所以具有唯一性. public Ha ...
- select2宽度占比100%,导致无法实现浮动效果