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验证数字正则表达式 代码如下: //检测是否为数字和小 ...
随机推荐
- 8.bootstrap下拉菜单、按钮组、按钮式下拉菜单
下拉菜单 dropdown 对齐方式: .dropdown-menu-right .dropdown-menu-left <div class="container" ...
- 如何正确理解关键字"with"与上下文管理器
转自:https://foofish.net/with-and-context-manager.html 如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 “with” 关键字的语句,它通 ...
- CENTOS6.4上KVM虚拟机环境搭建
CENTOS6.4上KVM虚拟机环境搭建 关键词: KVM,虚拟机,windows7, VNC, 桥接网络,br0, SCSI, IDE 环境: host: CENTOS6.4 guest: ...
- NYOJ 题目42 一笔画问题
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- 在2015年 开发一个 Web App 必须了解的那些事
在过去的一年里,我在从头开始开发我的第一个重要的Web应用.经验教会了很多以前不知道的东西,特别是在安全性和用户体验方面. 值得一提的是,我上一次尝试构建的任何合理复杂性是在2005年.所以,在安全防 ...
- postman做压力测试
压力测试 当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试 注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有 ...
- python基础一 day2 字符串操作
s.capitalize() s.upper() s.lower() s.swapcase() s.title() s.center(20,"#") s.expand ...
- Asp.Net Core 入门(四)—— Model、View、Controller
和我们学习Asp.Net MVC一样,Asp.Net Core MVC的Model.View.Controller也和我们熟悉的Asp.Net MVC中的相似.不同的是我们在使用Asp.Net Cor ...
- OpenCV2:第十章 视频操作
一.简介 OpenCV提供了专门操作视频的接口类VideoCapture 二.构造VideoCapture类 VideoCapture::VideoCapture() VideoCapture::Vi ...
- day02五大运算符:逻辑运算符、成员运算符、算数、比较、赋值、
# -*- encoding: utf-8 -*-# print('hello 中国')# 变量# print(10 + 20 + 3 + 15)# print((10 + 20 + 3 + 15)* ...