안녕하세요. 숫자를 사용하다가보면 천단위로 콤마처리를 하거나 소수점 자리를 표시해주는 등, 형식에 맞춰 포맷을 해줘야하는 경우가 있는데, 오늘은 PHP의 내장함수 number _format으로 이 부분을 어떻게 처리하는지에 대해 함께 살펴보려고합니다.
우선 number_format() 함수와 함수가 가질 수 있는 파라미터, 그리고 파라미터의 의미에 대해 봅시다.
number_format(
$숫자 : 포맷을 진행할 숫자 값 (String도 가능)
$데시멀 : 소수점 뒤 표시할 자릿 수 (기본값 0)
$데시멀 부호 : 소수점 부호 (기본값 "." )
$부호: 1000씩 숫자를 나눠서 표기할 때 사용할 부호 (기본값 " , ")
)
*$숫자 파라미터는 필수, 그 외 파라미터는 옵션이므로 생략가능하다.
*php 버전 8.0부터는 파라미터 1개($숫자), 2개($숫자,$데시멀), 4개($숫자,$데시멀,$데시멀부호,$부호)사용이 가능하나, 3개 사용은 불가능하다.
(1) 첫번째 파라미터 $숫자 입력 시 String 값도 가능합니다. 단, 인식할 수 없는 값이 들어가는 경우에는 오류가 나므로 입력값에 주의해야합니다.
<?php
//Int와 String 값 모두 파라미터로 입력 가능.
echo number_format(123456789,3,"#","@");
//123@456@789#000 출력 됨.
echo number_format("123456789",3,"#","@");
//123@456@789#000 동일하게 출력
echo number_format("!13_#4");
//에러메시지 출력.
?>
(2) 첫번째 파라미터 입력 시, 소수점이 있는 값의 경우 두번째 파라미터를 설정해주지않으면 소수점 뒤의 값이 날아가는 문제가 생기므로 주의해야합니다. 단, 두번째 파라미터로 n번째 소수값까지 표기하겠다고 했을 때 n+1값에서 반올림되어 값이 표기 됩니다. 원래있는 소수자리보다 많은 값을 설정하게 되면 나머지는 0으로 표기됩니다.
<?php
//소수점이 찍힌 값이 들어간 경우.
echo number_format(123456.789);
//123,457 출력.
echo number_format("3.3");
//3 출력
//두번째 파라미터 입력 시
echo number_format(123456.789,3);
//123,456.789 출력
echo number_format(123456.789,2);
//반올림 되어서 123,456.79 출력.
echo number_format(123456.789,4);
//123,456.7890 출력.
?>
(3) 세번째 파라미터는 소수점 부분을 표기할 수 있는 값을 입력할 수 있습니다. 단, 위에 이미 한번 언급했 듯이 number_format의 파라미터는 1개,2개,4개 입력이 가능하니 세번째 파라미터를 입력하는 경우 마지막 파라미터까지 적어주어야합니다.
<?php
//세가지 파라미터만 적는 경우 에러발생.
echo number_format(123456.789,4,"@");
//에러코드 출력:PHP Warning: Wrong parameter count for number_format() in /home/gb881M/prog.php on line 3
//네가지 파라미터 모두 작성.
echo number_format(123456.789,4,"@",",");
//소수점 값이 @ 문자로 출력 됨.
//123,456@7890 출력.
(4) 네번째 파라미터로 1000단위씩 숫자를 표기하는 값을 지정해줄 수 있습니다.
<?php
echo number_format(123456.789,4,".","★");
//123★456.7890 출력
echo number_format(123456.789,4,".","!");
//123!456.7890 출력
echo number_format(123456.789,4,".",",");
//123,456.7890 출력
?>
이렇게 php 내장함수 number_format을 사용하여 숫자를 특정 형식으로 포맷하여 표시하는 방법에 대해 살펴보았습니다.
+) 자세한 내용은 아래 링크를 참고바랍니다.
https://www.php.net/manual/en/function.number-format.php
https://www.w3schools.com/php/func_string_number_format.asp
'PHP' 카테고리의 다른 글
[PHP] 다양한 확장자의 파일을 업로드 해주는 함수 (0) | 2023.03.13 |
---|---|
[PHP] xlsx writer로 엑셀파일 생성하기. (0) | 2023.03.09 |
[PHP] png 파일 압축해서 업로드하기 (0) | 2022.12.06 |
[PHP] 파일이나 디렉토리 있는지 확인하고 만들기 (0) | 2022.09.06 |
[PHP] 동영상 업로드 하기 (0) | 2022.07.31 |