PHP에서 숫자 포맷팅을 활용한 소수점 처리 및 천 단위 콤마 표시 방법
페이지 정보

본문
그누보드 운영 및 수정 과정에서 금액이나 통계 수치를 보기 쉽게 정리하기 위한 PHP 숫자 포맷팅 함수 활용법과 주의사항을 안내합니다.
PHP 숫자 포맷팅과 number_format 함수
PHP에서 숫자를 출력할 때 천 단위 구분 기호인 콤마를 삽입하거나 소수점 이하 자릿수를 맞추는 작업은 주로 number_format 함수를 통해 처리합니다. 게시판이나 쇼핑몰 같은 웹 환경에서 금액이나 통계 수치를 보기 좋게 정리할 때 유용합니다.
기본 사용법과 콤마 표시
숫자에 천 단위 콤마를 넣거나 소수점 자릿수를 지정하려면 number_format 함수를 사용합니다.
<?php
$Price = "10000000";
$Money = number_format($Price);
echo $Money; // 10,000,000
?>
소수점 아래 자릿수를 지정하고 싶다면 두 번째 인자에 원하는 자릿수를 전달합니다.
<?php
$num = 123456789;
$res = number_format($num, 2);
echo $res; // 123,456,789.00
?>
적용 시 주의사항
숫자 포맷팅 변경 로직을 소스코드에 반영하기 전에는 반드시 원본 파일을 백업하십시오. 코드 적용 후 브라우저나 CLI 실행 결과로 천 단위 콤마와 소수점이 의도한 대로 출력되는지 확인하는 과정이 필요합니다.
number_format 함수 구분 기호 변경 방법
number_format 함수는 소수점 구분자와 천 단위 구분 기호를 사용자가 직접 변경할 수 있도록 추가 인자를 제공합니다.
구분 기호를 변경하려면 다음과 같이 함수에 소수점 구분자와 천 단위 구분 기호 인자를 순서대로 전달합니다.
<?php
$num = 123456789;
$res = number_format($num, 2, "/", "-");
echo $res; // 123-456-789/00
?>
이 방식을 응용하면 소수점 구분자로 점(.)을 사용하고 천 단위 구분 기호는 생략하는 형태도 구현할 수 있습니다.
<?php
$number = 1234.5678;
$english_format_number = number_format($number, 2, '.', '');
echo $english_format_number; // 1234.57
?>
sprintf 함수를 활용한 소수점 고정 방법
형식을 지정하여 출력하는 sprintf 함수를 사용하면 실수형 데이터를 특정 자릿수의 소수점 형태로 표현할 수 있습니다.
<?php
$a = 4.99 * 10;
echo sprintf("%2.2f", $a);
// 49.90
?>
%2.2f 형식 지정자는 실수형 데이터를 00.00 형태로 표현하도록 제어합니다.
숫자 문자열에서 콤마 제거하기
이미 콤마가 포함된 금액 문자열을 DB에 저장하거나 연산에 사용하기 위해 숫자로 변환할 때는 정규 표현식을 활용해 콤마를 제거할 수 있습니다.
<?php
$Price = "10,000,000";
$Price2 = preg_replace("/[^0-9]/", "", $Price);
echo $Price2; // 10000000
?>
입력 데이터의 형식에 따라 숫자가 아닌 문자가 포함되어 있을 수 있으므로 정규식 적용 시 예외 처리가 필요할 수 있습니다.
적용 전 확인 및 백업 안내
로직을 소스코드에 반영하기 전에는 원본 파일을 백업하는 것을 권장합니다. 코드 적용 후 브라우저나 CLI 실행 결과로 값이 의도한 대로 변환되는지 확인하십시오.
숫자 포맷팅 코드 반영 시 주의사항 및 확인 방법
PHP 숫자 포맷팅 변경 로직을 소스코드에 반영하기 전에는 원본 파일을 백업하는 것이 안전합니다.
코드 적용 후 결과 확인 절차
- 코드 적용 후 브라우저나 CLI 실행 결과를 통해 천 단위 콤마와 소수점이 의도한 대로 출력되는지 확인하십시오.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글PHP $SERVER 환경 변수 활용 및 주요 항목 가이드 26.09.15
- 다음글PHP 문자열 분리 및 배열 변환 방법 (explode와 list 함수 활용) 26.09.15
댓글목록
등록된 댓글이 없습니다.