>  기사  >  웹 프론트엔드  >  JavaScript는 많은 수의 jobs_javascript 기술을 구현합니다.

JavaScript는 많은 수의 jobs_javascript 기술을 구현합니다.

WBOY
WBOY원래의
2016-05-16 16:30:232084검색

매우 크거나 매우 작은 숫자의 경우 부동 소수점 값을 과학적 표기법으로 표현할 수 있습니다. 과학적 표기법을 사용하면 다음과 같이 숫자에 e/E를 더한 뒤 10의 배수가 오는 형태로 숫자를 표현할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

var num1 = 3.125e7; // 31250000 var num2 = 3e-17; // 0.0000000000000003

특히 큰 숫자의 덧셈과 뺄셈을 수행하려면 다음과 같은 문자열 과학 표기법을 사용할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

// 여기서는 큰 정수만 고려되고 소수는 고려되지 않습니다. function strAdd(sNum1, sNum2){
/*한 자리를 더해 가장 높은 자리가 한 자리 올라가는 상황을 기록*/
var sNum1 = ['0', sNum1].join(''), sNum2 = ['0', sNum2].join(''); /*짧은 숫자 문자열에 0을 추가합니다*/
var len1 = sNum1.length, len2 = sNum2.length,
ZeroArr = 함수(len){
var arr = 새로운 배열(len), i=len
동안(i--){arr[i] = 0;}
복귀 도착
}; if(len1 > len2){
var arrTemp = zeroArr(len1 - len2)
arrTemp.push(sNum2),
sNum2 = arrTemp.join('')
}
else if(len2 > len1){
var arrTemp = zeroArr(len2 - len1)
arrTemp.push(sNum1),
sNum1 = arrTemp.join('')
}
/*문자열을 배열로 변환하고 해당 숫자를 추가합니다*/
var arr1 = sNum1.split(''), arr2 = sNum2.split('')
var arrAddRes = new Array(arr1.length), i=arr1.length
var andone = 0, // 하위 비트에 1을 추가할지 여부 cur1, cur2, curAdd
동안(i--){
Cur1 = arr1[i], cur2 = arr2[i]
CurAdd = cur1 cur2 andone
If(10 > curAdd)
arrAddRes[i] = curAdd,
안돈 = 0
그 외
arrAddRes[i] = curAdd.toString().slice(1,2),
안돈 = 1
}
If(!andone){ // 끝에 하나를 추가할지 여부, 그렇지 않으면 이전 0을 가로채기 arrAddRes.splice(0,1)
}
/*배열의 처음 19자리가 가로채면 과학적 표기법을 사용하여 결과를 표현합니다*/
var keeplen = 19; // JS 소수점은 소수점 이하 18자리만 유지합니다. var eAfter = arrAddRes.length - 1; // e 뒤의 다중 부분 var eBefore, eBeforeStr = '' // e 앞의 소수 부분
if(keeplen < arrAddRes.length)
eBeforeStr = [arrAddRes[0], '.', arrAddRes.slice(1, keeplen).join('')].join(''); 그 외
eBeforeStr = [arrAddRes[0], '.', arrAddRes.slice(1).join('')].join(''); eBefore = eBeforeStr
[Number(arrAddRes.join('')), eBefore, eAfter]를 반환합니다.
}
strAdd('1234567890', '9876543210') // -> [1111111100, 1.1111111, 9]



코드는 위와 같으니 아주 간단하죠?
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.