js 개발 에 있어 서 소수 계산 함 수 를 유지 합 니 다.
1. 작은 숫자 를 위로 유지 합 니 다.
function upFixed (num, fix) {
// num ,fix
let result = '0'
if (Number(num) && fix > 0) { //
fix = +fix || 2
num = num + ''
if (/e/.test(num)) { // e
result = num
} else if (!/\./.test(num)) { //
result = num + `.${Array(fix + 1).join('0')}`
} else { //
num = num + `${Array(fix + 1).join('0')}`
let reg = new RegExp(`-?\\d*\\.\\d{0,${fix}}`)
let floorStr = reg.exec(num)[0]
if (+floorStr >= +num) {
result = floorStr
} else {
let floorNumber = +floorStr + +`0.${Array(fix).join('0')}1`
let point = /\./.test(floorNumber + '') ? '' : '.'
let floorStr2 = floorNumber + point + `${Array(fix + 1).join('0')}`
result = reg.exec(floorStr2)[0]
}
}
}
return result
}
2. 아래 에 소수 유지 (목표 소수 자리 후의 숫자 를 직접 버 리 고 계산 후의 수치 가 원래 의 수치 보다 크 지 않도록 확보한다)
function downFixed (num, fix) {
// num ,fix
let result = '0'
if (Number(num) && fix > 0) { //
fix = +fix || 2
num = num + ''
if (/e/.test(num)) { // e
result = num
} else if (!/\./.test(num)) { //
result = num + `.${Array(fix + 1).join('0')}`
} else { //
num = num + `${Array(fix + 1).join('0')}`
let reg = new RegExp(`-?\\d*.\\d{0,${fix}}`)
result = reg.exec(num)[0]
}
}
return result
}
주: 이 방법 은 과학 계수 법 을 사용 한 숫자 를 처리 하지 않 고 바로 되 돌려 줍 니 다.
다른: 두 함수 가 매우 유사 하 므 로 자신의 수요 에 따라 합병 하여 최적화 하면 된다.
문제 가 발견 되면 가르침 을 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.