JS 除法运算

JavaScript016

JS 除法运算,第1张

<script type="text/javascript">

function G(e){return document.getElementById(e)}

</script>

单价:<input type="text" id="p" name="price" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'')" onblur="G('total').value = this.value / 0.9"/>

金额:<input type="text" id="total" name="total" />

输入完单价,点金额的输入框就好~~

a是字符串,怎么能运算呢?用parseFloat将字符串转化为浮点数再进行计算。

具体修改如下:

var a = "62223.56"

var c = parseFloat(a) % 10000

浮点型在内存中并不一定就是按照想想中那样保存的。

多多少少会有不同。不如说0.23在内存中可能是以0.222222222229的形式保存的。或者是以0.230000000000000001的形式保存的。这种现象目前我还不知道怎么避免。但是用浮点型有可能就会产生这样的结果。

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)有些数字也出问题。