日期:2014-05-16 浏览次数:20377 次
比如:7*0.8 JavaScript算出来就是:5.6000000000000005
解决:
根据网上的方法写了一个函数:
/** * 四则运算方法 * * @param {} * numA 第一个数字 * @param {} * numB 第二个数字 * @param {} * sign 运算符(+ - * /) */ function calculate(numA,numB,sign) { var m=0,numALen=0,numBLen=0; try{numALen=numA.toString().split(".")[1].length}catch(e){} try{numBLen=numB.toString().split(".")[1].length}catch(e){} if(sign === '+'){ m=Math.pow(10,Math.max(numALen,numBLen)); if(m == 0){ m = 1; } return (numA*m+numB*m)/m; }else if(sign === '-'){ m=Math.pow(10,Math.max(numALen,numBLen)); if(m == 0){ m = 1; } return (numA*m-numB*m)/m }else if(sign === '*'){ m = Math.pow(10,numALen + numBLen) ; if(m == 0){ m = 1; } return Number(numA.toString().replace(".",""))*Number(numB.toString().replace(".",""))/m }else if(sign === '/'){ m = Math.pow(10,numALen - numBLen) ; if(m == 0){ m = 1; } return (Number(numA.toString().replace(".",""))/Number(numB.toString().replace(".","")) )*m; } return 0; }