[JavaScript] 자바스크립트 소수점 자리수 지정하기

2022. 5. 24. 02:45Program/JavaScript

040_자바스크립트 소수점 자리수 지정하기

[적용]

  • 숫자 3.14159265를 문자열 '3.14'로 변환하고 싶을 때
  • 숫자 10을 문자열 '10.00'으로 변환하고 싶을 때

[문법]

메소드 의미 반환
숫자값.toFixed([자리수*]) 소수점 이하 자리수 지정  문자열
숫자값.toPrecision([자리수*]) 자리수 지정 정밀도 반환  문자열

* 생략시 0


[내용]

toFixed()는 소수점의 자릿수 지정이 가능하며, 소수점 이하는 지정된 자릿수 변환 후 문자열로 반환한다.

(0.33333).toFixed(2);  // 0.33(문자열)

 

소수점 이하의 자리수가 줄어들 경우 값을 근사치로 변환한다.

(123.5678).toFixed(1);  // 123.6(근사치로 변환)

 

소수점 이하의 자리수가 늘어날 경우 0으로 채워진다.

(2.4).toFixed(4);  // 2.4000(소수점이 네 자리가 되도록 0이 채워짐)

 

toPrecision()은 들어온 값을 지정한 자리수의 정밀도로 변환하여 문자열을 반환한다.

(0.33333).toPrecision(2);  // 0.33(정밀도2)
(123.456).toPrecision(3);  // 123(정밀도3)

 

toFixes()와 같이 자리수가 늘어나면 근사치 변환, 줄어들면 0으로 채워 넣는다.

(4.56).toPrecision(2);  // 4.6(근사치 변환)
(10).toPrexision(4);  // 10.00(정밀도 4가 되도록 0으로 채움)

[예시]

내용

 

HTML                                                                                                                                                              index.html

<body>
    <div class="timer">
        <div class="second"></div>
    </div>
</body>

JavaScript                                                                                                                                                          main.js

/** 초 단위용 element */
const secondElement = document.querySelector('.second');

// 15초를 목표치로 지정
const goalTime = new Date().getTime() + 15 * 1000;

update();

/** 프레임 실행하는 함수 */
function update() {
    // 현재 시각
    const currentTime = new Date().getTime();
    
    // 목표치까지 남은 시간
    const leftTime = goalTime - currentTime;
    
    // 남은 시간이 0초 미만이라면 타이머 정지 (생략)
    
    // 초 단위 표시. 밀리초는 소수점 두 자리까지
    secondElement.innerHTML = (leftTime / 1000).toFixed(2);
    
    // 프레임에서 update() 재실행
    requestAnimationFrame(update);
}

 

실행결과

실행하면 15초간 카운트다운을 한다.

밀리초 단위의 소수점은 두 자리까지 표시한다.

0초가 되더라도 타이머 정지하는 것을 생략했기 때문에 새로고침을 하기 전까지 계속 마이너스로 카운트를 된다.

0초에 카운트다운을 정지하려면 정지 코드를 넣어주면 된다.


 

 

 

 

 

 

 

참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김