>웹 프론트엔드 >JS 튜토리얼 >소수점 이하 N자리를 유지하는 js 코드 구현_javascript 기술

소수점 이하 N자리를 유지하는 js 코드 구현_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:31:231284검색

JS에서는 소수점 이하 N자리를 유지하고 싶다면 보통 toFixed 함수를 사용합니다

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

<스크립트 언어="javascript"> document.write("

소수점 두 자리를 유지하는 JS 예


")
var a=2.1512131231231321
document.write("원래 값: " a "
"); document.write("소수점 2자리:" a.toFixed(2) "
소수점 4자리" a.toFixed(4))



반올림 변환 함수는 다음과 같습니다.

함수 round(v,e){
var t=1;
for(;e>0;t*=10,e--);
for(;e<0;t/=10,e );
return Math.round(v*t)/t;
}


매개변수:

v는 변환할 값을 나타냅니다

e는 보관할 자릿수를 나타냅니다

함수에 for가 2개 있다는게 핵심이에요

첫 번째 for는 소수점 오른쪽의 상황, 즉 소수점 오른쪽의 자릿수가 몇 개나 유지되는지에 대한 것입니다.

두 번째 for는 소수점 왼쪽의 상황, 즉 소수점 왼쪽의 자릿수가 몇 자리까지 유지되는지에 대한 것입니다.

for의 함수는 t의 값, 즉 v를 얼마나 확대하거나 축소해야 하는지의 배수(배수 = t)를 계산하는 것입니다.

여기에서는 for의 두 가지 기능인 조건부 판단과 카운터 누적(루프)을 활용합니다.

For는 e가 조건을 만족할 때 계속되고, e가 누적될 때마다(e의 각 누적은 루프를 만족하지 않는 for에 대한 조건을 생성하는 것임) t의 값도 계산됩니다.

마지막으로 네이티브 라운드 방식을 사용하여 v 확대/축소 결과를 계산한 후 결과를 올바른 배수로 확대/축소합니다.

다음은 예약된 두자리 숫자의 예시

<스크립트 유형="텍스트/자바스크립트"> //소수점 이하 두 자리 유지
//기능: 부동 소수점 숫자를 소수점 이하 2자리로 반올림
함수 toDecimal(x) {
var f = parsFloat(x)
if (isNaN(f)) {
반환
}
f = Math.round(x*100)/100
반환
}
//시스템은 소수점 이하 2자리를 유지합니다(예: 2). 2 뒤에 00이 추가됩니다. 즉, 2.00
함수 toDecimal2(x) {
var f = parsFloat(x)
if (isNaN(f)) {
거짓을 반환
}
var f = Math.round(x*100)/100
var s = f.toString()
var rs = s.indexOf('.'); if (rs rs = s.길이
s = '.'
}
while (s.length <= rs 2) {
s = '0'
}
반환
}
함수 fomatFloat(src,pos){
return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos)
}
//반올림
Alert("소수점 2자리 유지:" toDecimal(3.14159267))
Alert("소수점 2자리를 유지하도록 강제:" toDecimal2(3.14159267))
Alert("소수점 2자리 유지:" toDecimal(3.14559267))
Alert("소수점 2자리를 유지하도록 강제:" toDecimal2(3.15159267))
Alert("소수점 2자리 유지:" fomatFloat(3.14559267, 2))
Alert("소수점 1자리 유지:" fomatFloat(3.15159267, 1)); //반올림
Alert("소수점 2자리 유지:" 1000.003.toFixed(2))
Alert("소수점 1자리 유지:" 1000.08.toFixed(1))
Alert("소수점 1자리 유지:" 1000.04.toFixed(1))
Alert("소수점 1자리 유지:" 1000.05.toFixed(1))
//과학적 표기법
경고(3.1415.toExponential(2))
경고(3.1455.toExponential(2))
경고(3.1445.toExponential(2))
경고(3.1465.toExponential(2))
경고(3.1665.toExponential(1))
//n자리를 제외한 n자리까지 정확
Alert("소수점 둘째자리까지 정확합니다." 3.1415.toPrecision(2))
Alert("소수점 3자리까지 정확합니다." 3.1465.toPrecision(3))
Alert("소수점 둘째자리까지 정확함" 3.1415.toPrecision(2))
Alert("소수점 둘째자리까지 정확합니다." 3.1455.toPrecision(2))
Alert("소수점 5자리까지 정확함" 3.141592679287.toPrecision(5))




위의 코드가 전부입니다. 정말 간단하지 않나요? 모두에게 도움이 되었으면 좋겠습니다
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:jQuery의 지연된 object_jquery에 대한 자세한 설명다음 기사:jQuery의 지연된 object_jquery에 대한 자세한 설명

관련 기사

더보기