JS 怎么做加法运算

JavaScript016

JS 怎么做加法运算,第1张

var i = 1

var j = 2

alert(i+0+j) 结果 alert:3.

现在解答为什么要加一个0.因为在js里面,如果你直接写+号的话,JS会以为你是把两个字符串相加,就像上面的,结果会alert(12),而加上一个0的话,会让它知道这个是在做一个加法运算而不是拼接字符串。当然

<script>

var __MAX_MINUEND__ = 100//最大被减数,减法需要

var __MAX_RESULT__ = 10//最大运算结果

var operater = parseInt(Math.random() * 2)//运算符号,0为减法,1为加法

var a

var b

var result

switch(operater)

{

case 0://减法

result = parseInt(Math.random() * __MAX_RESULT__)

a = parseInt(Math.random() * (__MAX_MINUEND__ - 1 - result)) + result + 1

b = a - result

break

case 1://加法

result = parseInt(Math.random() * (__MAX_RESULT__ - 2)) + 2

a = parseInt(Math.random() * (result - 1)) + 1

b = result - a

break

}

document.write( a + (operater ? "+" : "-") + b +"=" + result)

</script>

0.1+0.2 != 0.3,怎么解决?

(1) 在计算机中,数字无论是定点数还是浮点数都是以多位二进制的方式进行存储的。存储一个数值所使用的二进制位数比较多,这样得到的数会更加精确。

(2) 由于存储空间有限,无法整除的小数的时候就会取一个近似值,在js中如果这个近似值足够近似,那么js就会认为他就是那个值。

(3) 在0.1 + 0.2这个式子中,0.1和0.2都是近似表示的,在他们相加的时候,两个近似值进行了计算,导致最后得到的值是0.30000000000000004,此时对于JS来说,其不够近似于0.3,于是就出现了0.1 + 0.2 != 0.3 这个现象。

当然,有时两个近似值进行计算的时候,得到的值是在JS的近似范围内的,于是就可以得到正确答案。

(4) 解决办法:

就是我们想办法规避掉这类小数计算时的精度问题,那么最常用的方法就是将浮点数转化成整数计算。因为整数都是可以精确表示的。

对于0.1 + 0.02 我们需要转化成 ( 10 + 2 ) / 1e2

公共方法使用