Develop

[JavaScript] 소수점과 정수를 연산 했을 때 소수점으로 결과 출력

issuemaker99 2025. 3. 20. 16:04
728x90

JavaScript에서는 모든 숫자가 IEEE-754 부동소수점 방식의 Number 타입으로 처리됩니다. 그래서 내부적으로는 소수점이 있는 숫자라도, 연산 결과가 정수처럼 보일 때는 불필요한 “.0” 부분이 생략되어 출력됩니다. 오늘은 이런 상황에서 정수 결과에 소수점 표시(예: 694993.0)를 강제로 출력하는 방법에 대해 알아보겠습니다.

 


기본 원리

 

JavaScript의 Number 타입은 내부적으로 모두 부동소수점 숫자입니다.

예를 들어, 아래와 같이 연산하면 실제 값은 부동소수점이지만, 출력 시에는 불필요한 0이 생략됩니다.

const a = 744993.0;
const b = 50000;
const result = a - b;

console.log(result);  // 출력: 694993

 

위 코드의 결과는 694993으로 나오는데, 이는 JavaScript가 기본적으로 정수 부분만 출력하기 때문입니다.

 


toFixed() 메서드 활용

 

이 문제를 해결하기 위해, toFixed() 메서드를 사용하여 소수점 이하 자릿수를 명시적으로 지정할 수 있습니다.

toFixed(1)을 사용하면, 결과를 소수점 이하 1자리까지 문자열로 변환할 수 있어, 아래와 같이 원하는 출력 형식(예: “694993.0”)으로 만들 수 있습니다.

const a = 744993.0;
const b = 50000;
const result = a - b;

console.log(result.toFixed(1)); // 출력: "694993.0"

 

주의:

 toFixed() 메서드는 숫자를 문자열(String)로 반환합니다.

 만약 이후 연산을 계속 진행해야 한다면, 문자열을 다시 숫자로 변환하거나 다른 방법을 고려해야 합니다.

LIST