Java 小数的加法会转换为浮点数相加,可能出现得不到精确值的情况
以下方法,是转换为整数的加法:
<html>
<head>
<title>Add</title>
<script lang="javascript/text">
//加法函数,用来得到精确的加法结果
//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
//给Number类型增加一个add方法,调用起来更加方便。
Number.prototype.add = function (arg){
return accAdd(arg,this);
}
function add(){
document.getElementById('c').value =
Number(document.getElementById('a').value).add(document.getElementById('b').value)
}
</script>
</head>
<body>
<input id="a"/>
<input id="b"/>
<input type="button" label="=" οnclick="add()"></button>
<input id="c"/>
</body>
</html>