js中0.1+0.2 == 0.3吗?
那么如何判断两个浮点数直接相等呢?
1、精度判断法
2、使用toFixed()方法
toFixed()方法可以把Number四舍五入为指定小数的数字。
语法
NumberObject.toFixed(num)//num代表要保留的小数位数。
但是toFixe存在不精准的问题:
解决方法:
重写toFixed()方法:
参考:
https://blog.csdn.net/undytk/article/details/88912386
https://blog.csdn.net/qq_33237207/article/details/81668457
正则表达式方法function checkRate(input){var re = /^[0-9]+.?[0-9]*$///判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/ if (!re.test(input.rate.value)){alert("请输入数字(例:0.02)")input.rate.focus()return false}}下面为普通函数写法function BASEisNotNum(theNum){//判断是否为数字if (BASEtrim(theNum)=="")return truefor(var i=0i1 &&theInt.substring(0,1)=="0") || BASEisNotNum(theInt)){return true}return false}function BASEisNotFloat(theFloat){//判断是否为浮点数len=theFloat.lengthdotNum=0if (len==0)return truefor(var i=0i1)return true}if (len>1 &&theFloat.substring(0,1)=="0"){if (theFloat.substring(1,2)!=".")return true}return falseisNaN 函数isNaN(expression:Object) : Boolean计算参数,如果值为 NaN(非数字),则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。可用性:Flash Player 5;ActionScript 1.0参数expression:Object - 要计算的布尔值、变量或其它表达式。返回Boolean - 一个布尔值。例子:if(isNaN(document.login.imgcode.value)){alert('验证码必须是数字!')