본문 바로가기
PHP

[PHP] 숫자 내장 함수: number_format, round, rand 함수

by teamnova 2025. 10. 13.
728x90

PHP를 개발하다 보면 변수를 출력하는 것 이상으로 숫자를 다뤄야 하는 경우가 있습니다. 예를 들어 상품가격을 표시하거나, 통계 데이터의 소수점을 처리하거나, 숫자를 무작위로 뽑아야하는 상황도 있습니다.

 

PHP가 기본적으로 제공하는 숫자 관련 함수들을 사용하면 편리하게 작성이 가능합니다.

 

쇼핑몰에서 1200000원 보다는 1,200,000원 이라고 표시된 것이 훨씬 보기 편하죠? 

number_format() 함수는 이처럼 숫자의 천 단위마다 콤마(,)를 찍어주거나 소수점 자리를 깔끔하게 정리해 주는 역할을 합니다.

 

// 기존 방식: number_format()
$price = 1234567;
echo number_format($price); // 출력: 1,234,567

 

소수점 처리

$pi = 3.1415926535;

// 소수점 둘째 자리까지 표시 (자동으로 반올림됨)
echo number_format($pi, 2); // 출력: 3.14

$price = 1234567;
// 정수지만 소수점 둘째 자리까지 0으로 채워서 표시
echo number_format($price, 2); // 출력: 1,234,567.00

 

세 번째, 네 번째 인자로 소수점 구분 기호와 천 단위 구분 기호를 직접 지정할 수도 있습니다. 

(유럽 등 일부 국가에서는 표기법이 다릅니다.)

 

$number = 1234567.89;

// 소수점은 콤마(,), 천 단위는 공백(' ')으로 표시
echo number_format($number, 2, ',', ' '); // 출력: 1 234 567,89

 

소수점 처리 메서드

소수점을 다룰 때 '반올림', '올림', '버림(내림)' 처리는 필수입니다. PHP에서는 이 세 가지를 각각 round(), ceil(), floor() 함수로 간단하게 처리할 수 있습니다

echo round(4.7); // 출력: 5
echo round(4.3); // 출력: 4
echo round(4.5); // 출력: 5 (0.5는 올림 처리)

 

 

round() 역시 두 번째 인자로 소수점 자릿수를 지정해서 특정 자리에서 반올림할 수 있습니다.

$pi = 3.141592;
echo round($pi, 2); // 소수점 셋째 자리에서 반올림하여 둘째 자리까지 표시. 출력: 3.14

 

ceil은 'ceiling(천장)'의 약자로, 소수점 자리가 조금이라도 있으면 무조건 다음 정수로 올려버립니다. 쿠폰 개수나 페이지 수 계산 시 유용합니다.

// 게시물이 101개 있고, 한 페이지에 10개씩 보여준다면?
$totalPages = 101 / 10; // 10.1
echo ceil($totalPages);  // 총 11 페이지가 필요함. 출력: 11

echo ceil(4.1); // 출력: 5
echo ceil(4.0); // 출력: 4 (소수점 이하가 없으면 그대로)

floor는 'floor(바닥)'의 약자로, 소수점 자리를 모두 버리고 정수 부분만 남깁니다. 나이를 계산하거나 특정 구간을 나눌 때 유용합니다.

echo floor(4.9); // 출력: 4
echo floor(4.1); // 출력: 4

 

로또 번호를 뽑거나, 랜덤 이벤트 당첨자를 선정하거나, 게임 캐릭터의 공격 데미지를 무작위로 결정하는 등 랜덤 숫자가 필요한 경우가 많습니다. 

mt_rand(): 특정 범위 내의 무작위 숫자가 필요할 때

// 1부터 100 사이의 랜덤한 숫자 뽑기
$randomNumber = mt_rand(1, 100);;
echo "이번 주 행운의 번호는 " . $randomNumber . "입니다!";