js高精度计算器 货币计算器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>计算器的实现</title>
	</head>
	<script type="text/javascript">
		function calCulate(flag){
			var v1 = document.getElementById("v1").value;
			var v2 = document.getElementById("v2").value;
			var value = arithmetic(v1,flag,v2);
			alert(value);
		}
		
		function arithmetic(arg1,operator,arg2){
			//保留几位小时
			var retain = 2;
            var r1,r2,mul,size;
			//获取小数点总共有多少位。
            try{
                r1=arg1.toString().split(".")[1].length;
            }catch(e){
                r1=0;
            }
            try{
                r2=arg2.toString().split(".")[1].length;
            }catch(e){
                r2=0;
            }
			//精度到第几位
            size = Math.max(r1,r2);

            switch(operator){
                    case "+":
                    case "-":
                            mul = size;
                            break;
                    case "*":
                            mul = 2 * size;
                            break;
                    case "/":
                            mul = 0;
                            break;
            }
			var offest = Math.pow(10, size);
			var v1 = (arg1*offest).toFixed(0)
			var v2 = (arg2*offest).toFixed(0)
			var vMul = Math.pow(10, mul)
            var result =  eval(v1 + operator + v2) / vMul;
			//return result.toFixed(retain)  这里的结果是保留几位小数。自己选择是否使用
			return result
        }

	</script>
	

	
	<body>
		<input type="text" name="t" id="v1" value="" />
		<input type="text" name="t" id="v2" value="" />
		<input type="button"  value="+" onclick="calCulate(this.value)"/>
		<input type="button"  value="-" onclick="calCulate(this.value)"/>
		<input type="button"  value="*" onclick="calCulate(this.value)"/>
		<input type="button"  value="/" onclick="calCulate(this.value)"/>
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值