在js中,带小数的数据相加或相乘时总会出现好多位小数.这是因为在js中浮点数的计算是以2进制算的,
解决方法一般是将小数化成整数后再作除法。
加法和减法示例:
function addValue(value1,value2){ if(value1=="")value1="0"; if(value2=="")value2="0"; var temp1=0; var temp2=0; if(value1.indexOf(".")!=-1) temp1=value1.length - value1.indexOf(".")-1; if(value2.indexOf(".")!=-1) temp2=value2.length - value2.indexOf(".")-1; var temp=0; if(temp1>temp2) temp = (parseFloat(value1)+parseFloat(value2)).toFixed(temp1); else temp = (parseFloat(value1)+parseFloat(value2)).toFixed(temp2); return temp; } function subValue(value1,value2){ if(value1 == "") value1="0"; if(value2 == "") value2="0"; var temp1 = 0; var temp2 = 0; if(value1.indexOf(".") != -1) temp1 = value1.length - value1.indexOf(".")-1; if(value2.indexOf(".") != -1) temp2 = value2.length - value2.indexOf(".")-1; var temp=0; if(temp1 > temp2) temp = (parseFloat(value1) - parseFloat(value2)).toFixed(temp1); else temp = (parseFloat(value1)- parseFloat(value2)).toFixed(temp2); return temp; }