在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;
}
本文介绍了JavaScript中处理浮点数运算时出现的精度问题及其解决方案。通过将小数转换为整数进行计算再还原的方法,确保了加减法运算的准确性。
948

被折叠的 条评论
为什么被折叠?



