<input type="text" id="num1" value="" />
<select id="mySelect">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" id="num2" value="" />
<input type="button" id="jisuan" value="计算" />
//js
<script>
var oTxt1 = document.getElementById('num1')
var oTxt2 = document.getElementById('num2')
var oSelect = document.getElementById('mySelect')
var oBtn = document.getElementById('jisuan')
oBtn.onclick=function(){
switch(oSelect.value){
case '+':
alert(parseInt(oTxt1.value)+parseInt(oTxt2.value))
break
case '-':
alert(parseInt(oTxt1.value)-parseInt(oTxt2.value))
break
case '*':
alert(parseInt(oTxt1.value)*parseInt(oTxt2.value))
break
case '/':
if(parseInt(oTxt2.value) !== 0){
alert(parseInt(oTxt1.value)/parseInt(oTxt2.value))
}else{
alert('除数不能为0')
}
break
default:
alert('Bug!!!')
}
}
</script>
javascript中的运算时存在问题的,下面以除法为例,仅供参考:javascript中的除法问题:
计算一下:
8.80 * 100 * 12 / 100
结果:105.60000000000002
38.80也会出现类似的问题。
精确度增加10倍:
8.80 * 1000 * 12 / 1000
结果:105.6
正常了。
16.40 * 1000000 * 6 / 1000000
结果也有问题
为了让js执行的更准确,在以后的js小数计算中直接将值扩大10000倍,再除以10000,就可以解决问题。
var num = 38.80
var num2 = 13
alert(num * 10000 * 12 / 10000)
被乘和除的这个数经过测试10000最合适,小了有些数字出问题,大了(1000000)有些数字也出问题。