number_format()
함수의 사용법
number_format()
함수는
숫자 또는 숫자 형태의 문자열을 천 단위로 그룹화한 후 숫자 문자열로 포맷합니다.
천 단위 구분 기호인 콤마(,
)를 삽입하여 가독성을 높이는 데 주로 사용되며, 소수점 자리수와 소수점 구분 기호도 지정할 수 있습니다.
number_format()
함수는 숫자 문자열 타입으로 포맷합니다. 숫자 타입으로 포맷되지 않습니다.
number_format()
함수의 형식은 다음과 같습니다.
구문
매개변수
$num |
필수. 숫자 또는 숫자 형태의 문자열입니다. |
---|---|
$decimals |
옵션. 표시할 소수점 이하 자리수를 설정합니다. 기본값은 0 입니다. |
$decimal_separator |
옵션. 소수점 자리를 구분하는 기호를 지정합니다. 기본값은 점(. )입니다. |
$thousands_separator |
옵션. 천 단위를 구분하는 기호를 지정합니다. 기본값은 쉼표(, )입니다. |
반환 값
포맷팅된 숫자를 문자열로 반환합니다.
버전 변경사항
PHP 4 버전부터 제공됩니다.
PHP 8.0.0 | 이전 버전에서는 number_format() 함수가 1개, 2개, 혹은 4개의 매개변수만 허용되었고, 3개의 매개변수는 사용할 수 없었습니다. 그러나 PHP 8.0.0부터는 3개의 매개변수를 허용하게 변경되었습니다. |
---|---|
PHP 7.2.0 | -0 과 같은 결과를 반환하지 않도록 변경되었습니다. 이전에는, 예를 들어 number_format(-0.01) 과 같은 경우 결과값으로 -0 을 반환할 수 있었으나, PHP 7.2.0 이후에는 이러한 결과가 더 이상 반환되지 않게 수정되었습니다. |
예제
예제들을 통해서 number_format()
함수의 작동 원리를 살펴보는 내용입니다.
기본적인 숫자 포맷팅
이 예제에서, number_format()
함수는 기본적으로 천 단위로 쉼표(,
)를 추가하며 소수점 이하 부분은 반올림한 정수 값을 출력합니다.
소수점 이하 자릿수 지정
여기서는 두 번째 매개변수로 소수점 이하 자릿수를 2
로 지정하여, 소수점 이하 두 자리까지만 표시합니다.
소수점 및 천 단위 구분 기호 지정
세 번째와 네 번째 매개변수로 각각 소수점 구분 기호와 천 단위 구분 기호를 지정할 수 있습니다. 이 예제에서는 소수점은 점(.
)으로, 천 단위는 공백(
)으로 설정했습니다.
음수 처리
음수 값도 처리되며, 천 단위 구분 기호가 적용되고 소수점 이하가 반올림된 값이 출력됩니다.
숫자 문자열 처리
number_format()
함수는 숫자 문자열도 자동으로 처리하여 천 단위로 포맷팅된 값을 반환합니다.
number_format()
함수가 숫자 문자열을 자동으로 처리하는 것은 PHP의 타입 저글링(Type Juggling)과 관련이 있습니다. PHP 변수의 데이터 타입 변환을 이해해야 합니다. PHP는 동적 타이핑 언어로, 함수가 숫자나 문자열을 처리할 때, 입력된 데이터 타입에 맞춰 내부적으로 자동 변환을 수행합니다.
숫자로 시작하는 문자열은 올바르게 작동하지만, 숫자가 아닌 문자로 시작하는 문자열은 경고가 발생합니다.