javascript中比较数字大小

做项目,遇到一个让人非常纠结的问题,就是获取的两个值比较,却出现了一位数比二位数大的情况。
刚开始还以为哪里写错了,检查了几遍,用ie调了下,意识到是应该是用错了比较方法了。才想起以前也碰到过这种情况的,究其原因,就是js默认比较字符串,先比较两个的第一个字符,相同再比较第二个,以此类推。
所以,对于数字的比较,首先要转换为数字,再进行比较,就不会出错了。
js中数值比较,如下所示:

var id=document.pageaction.pageNow.value;-->4
var count=document.pageaction.count.value;-->30
alert(id>count);//结果是true

alert结果为true,因为js默认比较字符串,先比较两个的第一个字符,相同再比较第二个,以此类推

解决方式:
使用parseInt(id)进行整型转换:

alert(parseInt(id)>parseInt(count));//结果是false
alert(eval_r(id)>eval_r(count));
//eval()函数用于在不引用任何特定对象的情况下计算代码字符串。
时间: 2024-08-25 17:48:31

javascript中比较数字大小的相关文章

javascript中关于坐标 大小 的描述

window对象 有效桌面的大小,除去桌面下面的任务栏的高度 window.screen.availHeight : window.screen.availWidth : 浏览器窗口的左上角相对于windows桌面的位置(FF不支持改属性) window.screenTop : 距windows桌面顶部的距离 window.screenLeft : 距windows桌面左边的距离 屏幕的分辨率 window.screen.height : window.screen.width : 浏览器窗口的

javascript中的数字玩法,颠覆你的眼睛

1.JavaScript中的数字中有一些很奇葩的现象. 在Chrome控制台中可以自己做一下实验: 1 === 1.0 ; //true 习惯了强类型语言,如java,c,OC看到这个结论还是有点小迷茫的.这是因为JavaScript内部,所有数字都是以64位浮点数形式存储的,包括正数.它遵循IEEE 754标准. 再看,浮点数的计算. 0.1 + 0.2: 浮点数 发现,0.3 - 0.2 不等于 0.2 - 0.1.所以在做浮点数计算和比较的时候还是要小心的. 对于整数运算,JavaScri

JavaScript 中的数字和日期类型

本章节介绍如何掌握Javascript里的数字和日期类型 数字EDIT 在 JavaScript 里面,数字都是双精度浮点类型的 double-precision 64-bit binary format IEEE 754 (也就是说一个数字只能在 -(253 -1) 和 253 -1之间).没有特定的数据类型为整型.除了能够表示浮点数,号码类型有三个符号值: +Infinity.-Infinity和 NaN (not-a-number).参见Javascript指南中的 JavaScript

javascript中数组比较大小方法

javascript中数组取最大值和最小值 1.排序法 我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值.排序我们会用到数组的 sort 方法. var arr = [12,56,25,5,82,51,22]; arr.sort(function (a, b) { return a-b; }); // [5,12,22,25,51,56] var min = arr[0]; // 5 var max = arr[arr.length

解决java中按照数字大小来排序文件

我们想要输出(1.jpg.2.jpg.3.jpg.10.jpg.11.jpg.20.jpg.21.jpg.31.jpg) 突然看到网上一些写法 总结:既然自己按照定义的文件名规则来处理,也可以进行使用正则表达,简化使用 1 File[] files = file.listFiles(); 2 if(files==null)return resultFileName; 3 List<File> fileList = new ArrayList<File>(); 4 for (File

JavaScript中Number数字数值浮点运算有误差

JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 //调用:numberExcept(arg1,arg2) //返回值:arg1除以arg2的精确结果function   numberExcept(arg1,arg2){ var t1=0,t2=0,r1,r2;  try{t1=arg1.toString().split(".")[1].length}catch(e){}  try{t2=arg2.toS

为什么不要在 JavaScript 中使用位操作符?

如果你的第一门编程语言不是 JavaScript,而是 C++ 或 Java,那么一开始你大概会看不惯 JavaScript 的数字类型.在 JavaScript 中的数字类型是不区分什么 Int,Float,Double,Decimal 的.咳咳,我说的当然是在 ES6 之前的 JS,在 ES6 的新标准中提出了像 Int8Array 这样新的数据类型.不过这不是本文叙述的重点,暂且就不谈啦.本文将更着重地谈 JS 的数字类型以及作用于它的位操作符,而关于包装对象 Number 的更多了解可以

[转载]JavaScript 中小数和大整数的精度丢失

标题: JavaScript 中小数和大整数的精度丢失作者: Demon链接: http://demon.tw/copy-paste/javascript-precision.html版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款. 先来看两个问题: 0.1 + 0.2 == 0.3; // false 9999999999999999 == 10000000000000000; // true 第一个问题是小数的精度问题,在业界不少博客里已有讨论

关于JavaScript中计算精度丢失的问题

摘要: 由于计算机是用二进制来存储和处理数字,不能精确表示浮点数,而JavaScript中没有相应的封装类来处理浮点数运算,直接计算会导致运算精度丢失. 为了避免产生精度差异,把需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂),这是大部分编程语言处理精度差异的通用方法. 关键词: 计算精度 四舍五入 四则运算 精度丢失 1. 疑惑 我们知道,几乎每种编程语言都提供了适合货币计算的类.例如C#提供了decimal,Java提供了BigDecim