js 大数相加和小数相加

JavaScript012

js 大数相加和小数相加,第1张

js的数字有一个大小限制,超出会溢出,现写一个 add(num:string,num:string):string 求大数之和

栗子:add("2312421212512521111112421412412","123")

float型浮点数相加会出现问题,如0.1+0.3

js数组求和的方法

vararray = [1,2,3,4,5]

varsum =0

1.for循环

for(leti =0i <array.lengthi++) {

        sum += array[i]

    }

2.forEach

array.forEach(ele=>{

        sum += ele

    })

3.归并方法reduce()和 reduceRight()

//这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中, reduce()方法从数组的第一项开始,逐个遍历到最后。

//而 reduceRight()则从数组的最后一项开始,向前遍历到第一项 

varsum1 = array.reduce(function(prev, next, index, array){

returnprev + next

    })

varsum2 = array.reduceRight(function(last, before, index, array){

returnlast + before

    })

4.eval()

eval(array.join("+"))

不是在另外一个问题回答你了吗。。。需要用到大数运算类BigInt.js,看附件

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=utf-8" />

<title>BigInt.html</title>

<script src="BigInt.js"></script>

<script>

// 大数运算

function bigCount(){

var a = new BigInt("100000000000000400")

var b = new BigInt("100000000000000300")

var c=bigint_plus(a,b)//大数加法

var d=bigint_minus(a,b)//大数减法

alert("和:"+c)

alert("差:"+d)

}

</script>

</head>

<body onload="bigCount()">

</body>

</html>