미국 화폐는 센트(0.01)가 최소 기본 단위로,
소수점 이하 2자리까지 표시가 되어야 하는 경우가 많습니다.
소수점 2자리 표시 처리를 위한 방법과 예제
1) sprintf() 함수를 이용하는 방법
2) (추천) number_format를 이용한 방법 <= 추천방법
3) number_format와 sprintf()를 이용한 예제
number_format 방식이
가장 우리가 배운 수학적인 반올림과 내림 절삭처리를 하는 방법입니다.
1) sprintf() 함수를 이용하는 방법
PHP에서 round($_val, 2); 소수점 2자리 반올림을 하면, 뒷자리가 0을로 채워지지가 않습니다.
해당 $ 1.00 같이 뒷자리를 채우기 위해서는 srpintf() 문을 이용하면 됩니다.
$padded = sprintf('%0.2f', $unpadded); // 520 -> 520.00
2) (추천) number_format 를 이용한 방법
.75를 0.75로 변경하는 포멧 방식
number_format ('.75', 2); //결과는 0.75가 출력됩니다.
number_format(float $number [,int $decimals=0]) : string
또는
number_format(float $number ,int $decimals=0 ,string $dec_point="." ,string $thousands_sep=","):string
다음과 같은 방식으로 하면, 간단히 미국 화폐 단위로 변환이 가능합니다.
숫자형 소수점 2자리 넣기
신용카드(Credit Card)의 통신에서 미국의 돈의 값의 경우, 예로 $4.20를 보낼때, 소수점 없이 420로 많이들 보냅니다.
(미국에 가장 유명한 Web Credit Card Payment 회사: stripe.com도 이 형식을 사용중)
이 경우 다시금 프로그램에서 표시가 될때는 420 -> 4.20으로 환산하는 방식을 사용해야 하는데요.
간단한 공식이지만 기억이 잘 떠오르지 않을 수 가 있습니다.
(가장 적은 단위의 통화를 양의 정수화 시키는 것
= A Positive integer in the smalless currency unit)
간단한 공식
$_money = '420';
$_money = $_money * 0.01;
echo $_money;// 결과: 4.2
숫자형으로 변경한 공식까지
$_money = '400020';
$_money = number_format($_money * 0.01, 2);
echo $_money;// 결과: 4,000.20
너무도 간단한 내용이지만, 이 또한 생각이 나지 않을때가 있어 메모 남겨둡니다.
반대의 경우 4.20 -> 400
$_money = '4.20';
$_money = $_money * 100;
echo $_money;// 결과: 420
3) number_format와 sprintf()를 이용한 예제
숫자를 자를때, 반올림과 절삭을 통해서 처리를 합니다.
우리가 배운 수학에서 표현되는 반올림 형태의 결과 값을 보내는 것은
number_format()함수 입니다.
2개의 함수를 통한 반올림의 예제
Number_format의 함수에 대한 예제
<?php
$numbers = array(0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009);
foreach ($numbers as $number)
print $number."->".number_format($number, 2, '.', ',')."<br>";
?>
0.001->0.00
0.002->0.00
0.003->0.00
0.004->0.00
0.005->0.01
0.006->0.01
0.007->0.01
0.008->0.01
0.009->0.01
참고:
Stripe Currency - Are all amounts in cents / 100ths, or does it depend on currency?
Stripe must charge in "smallest currency unit" - currently biased toward dollars/cents
www.php.net/manual/en/function.number-format.php
'WEB언어 > PHP' 카테고리의 다른 글
[php] Date Format 일자/날짜 포멧 변경하기 총정리 strtotime() , DateTime::createFromFormat() (0) | 2019.10.31 |
---|---|
PhpStome UI 다크모드 사용하기 (JetBrain제품들 다 지원- Darcula) (0) | 2019.10.10 |
IIS + PHP에서 알수 없는 500번 오류 (0) | 2019.10.05 |
[PHP] break / return / exit 차이점 (2) | 2019.07.31 |
[PHP] 하나 은행 환율 API를 통한 JSON (14) | 2018.12.06 |
PHP7에서 mysql_connect 를 mysqli_connect 로 사용 (0) | 2018.12.05 |
PHP 현재 자신의 파일명 가져오기 basename($_SERVER['PHP_SELF']); (0) | 2018.05.15 |
php 이미지 자르기(crop) 만들기 (0) | 2018.05.09 |
(로그인하지 않으셔도 가능)