PHP money_format ์ผ๋ก ํํ ๋จ์ ํ์ ํ๊ธฐ
PHP ์๋ ์ซ์๋ฅผ ํธ๋ฆฌํ๊ฒ ํฌ๋งทํ ํ ์ ์๋ number_format ์ด๋ผ๋ ๋ด์ฅ ํจ์๊ฐ ์์ต๋๋ค.
number_format ์ ํํ ๋จ์ ํ์ํ ๋ ์ฌ์ฉํด๋ ๋์ง๋ง ํํ์ ๊ฒฝ์ฐย $ ๊ฐ์ ํตํ ํ์๋ฅผ ๊ฐ์ด ํด์ฃผ๋๊ฒ ํ์ํ๋ฉฐ PHP ์์๋ ์ด๋ฅผ ์ํด์ money_format ์ด๋ผ๋ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฌ์ฉ๋ฒ์ number_format()๊ณผ ๋ค๋ฅด๋ฏ๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค. ์๋ก ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๊ฐ ํฌ๋งท ๋ฌธ์์ด์ด๊ณ ๋๋ฒ์งธ๊ฐ ํฌ๋งทํ ํ ์ซ์์ ๋๋ค.
locale ์ค์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์๊ฒ ์ง๋ง ์๋ ์์ ๋ ์์ซ์ 2์๋ฆฌ๊น์ง ํ์ํ๊ณ (3์๋ฆฌ๋ ๋ฐ์ฌ๋ฆผ) ์ฒ ๋จ์ ๊ตฌ๋ถ์๋ก , ๋ฅผ ์ฐ์ด์ ํ์ํฉ๋๋ค.
<?php $num = 12345678.2354; echo money_format('%.2n', $num); // "12345678.24"
locale ์ค์ ์ด ์ ๋์ด ์์ผ๋ฉด ์์ ๊ฐ์ด ํตํ ์ฌ๋ณผ์์ด ์ซ์๋ง ํ์๋ฉ๋๋ค.
๋ฌธ์ ๋ ๊ฐ๊ตญ์ ํตํ ์ฌ๋ณผ์ด ๋ชจ๋ ๋ค๋ฅด๋ฏ๋ก if ๋ฌธ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ ๋ณด๋ค๋ locale์ ์ค์ ํ๊ณ ์ด๋ฅผ ์ฐธ๊ณ ํด์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
<?php $num = 12345678.2354; // ์ผ๋ณธ ํตํ๋ก ๋ณ๊ฒฝ. ๋ชจ๋ locale ์ค์ ์ ๋ณ๊ฒฝํ๋ ค๋ฉด LC_ALL ์ ์ฌ์ฉ setlocale (LC_MONETARY, 'ja_JP.UTF-8'); echo money_format('%.2n', $num); // ์ํ๋ก ๋ณ๊ฒฝ setlocale (LC_MONETARY, 'ko_KR.UTF-8'); echo money_format('%.2n', $num);
ํด๋น locale ์ ๋ง๊ฒ ์ซ์๋ฅผ ํฌ๋งทํ (์ฒ ๋จ์ ํ์)ํ๊ณ ํตํ ์ฌ๋ณผ๋์ ๋ฌธ์(KRW)๋ฅผ ํ์ํ๋ ค๋ฉด %i ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
<?php $num = 12345678.2354; echo money_format('%i', $num); // "KRW12,345,678"