PHP number_format ์ผ๋ก ์ซ์ ํฌ๋งทํ ํ๊ธฐ
PHP ์๋ ์ซ์๋ฅผ ํธ๋ฆฌํ๊ฒ ํฌ๋งทํ ํ ์ ์๋ number_format์ด๋ผ๋ ๋ด์ฅ ํจ์๊ฐ ์์ต๋๋ค.
์๋ก ์๋์ ๊ฐ์ float ํ์์ ์ซ์๊ฐ ์์ ๊ฒฝ์ฐ number_format() ์ ๊ฑฐ์น๋ฉด ์ฒ ๋จ์๋ง๋ค , ๋ฅผ ์ฐ์ด์ ๋ณด๊ธฐ ์ข๊ฒ ๋ง๋ค์ด ์ค๋๋ค.
<?php $num = 12345678.2354; echo number_format ($num); // "12,345,678"
number_format() ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ์ดํ๋ฅผ ๋ ๋ ค ๋ฒ๋ฆฌ๋ฏ๋ก ์์์ ์ ํ์ํ๋ ค๋ฉด 2๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ํ์ํ ์์์ ์๋ฆฟ์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
<?php $num = 12345678.2354; echo number_format ($num, 2); // "12,345,678.24"
์ ์ฝ๋๋ ์์์ 2์๋ฆฌ๋ง ํ์ํ๊ณ 3์๋ฆฌ๋ถํฐ๋ ๋ฐ์ฌ๋ฆผํ๋ฏ๋ก .24 ๊ฐ ํ์๋ฉ๋๋ค.
๋ง์ฝ 3์๋ฆฌ๋ง ํ์ํ๋๋ก ์ง์ ํ๋ค๋ฉด 4์๋ฆฌ๊ฐ 4 ์ด๋ฏ๋ก ๋ฒ๋ ค์ง๊ฒ ๋ฉ๋๋ค.
<?php $num = 12345678.2354; echo number_format ($num, 3); // "12,345,678.235"
ํ์ง๋ง ์ธ๊ณ ๊ฐ ๊ตญ๋ง๋ค ์ซ์๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฅด๋ฉฐ ์๋ก ํ๋์ค๋ ์ฒ ๋จ์ ๊ตฌ๋ถ์๋ก , ๊ฐ ์๋ ๊ณต๋ฐฑ์ ์ฌ์ฉํ๊ณ ์์์ ์ , ๋ก ํ์ํฉ๋๋ค.
number_format์ 3๋ฒ์งธ๋ ์์ซ์ ์ ํ์ํ ๋ฌธ์๋ฅผ ์ง์ ํ๊ณ 4๋ฒ์งธ๋ ์ฒ ๋จ์ ๊ตฌ๋ถ์๋ฅผ ์ง์ ํ๋ฏ๋ก ์๋ ์ฝ๋๋ ํ๋์ค ์์ผ๋ก ์ซ์๋ฅผ ํฌ๋งทํ ํฉ๋๋ค.
<?php $num = 12345678.2354; echo number_format ($num, 3, ',', ' '); // "12 345 678,235"
๋ ๋ ์ผ์ย ์ฒ ๋จ์์ ์์ซ์ ์ ๊ตฌ๋ถ์๋ฅผ ๋ฐ๊ฟ์ ์ฌ์ฉํฉ๋๋ค. ์ฆ ์ฒ ๋จ์ ๊ตฌ๋ถ์๋ก . ์, ์์ซ์ ๊ตฌ๋ถ์๋ก๋ , ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
<?php $num = 12345678.2354; echo number_format ($num, 3, ',', '.'); // "12.345.678,235"
์ด๋ฐ ๋ชจ๋ ํ์์ ๊ธฐ์ตํ ์๋ ์์ผ๋ฏ๋ก locale ์ค์ ๊ณผ ๊ด๋ จ์์ด ์ ๋๋ก ๋ ์ซ์ ํฌ๋งทํ ์ ํ๋ ค๋ฉด ํ์ํ๋ ค๋ ๊ตญ๊ฐ์ locale ๋ก ์ค์ ์ ๋ณ๊ฒฝํ ํ์ ํด๋น ๊ฐ์ ์ฌ์ฉํ๋๋ก ์์ ํ๋ฉด ๋ฉ๋๋ค.
<?php // ํ์ํ๋ ค๋ ๊ตญ๊ฐ๋ก locale ๋ณ๊ฒฝ setlocale (LC_ALL, 'de_DE.UTF-8'); $locale = localeconv (); echo number_format($number, $locale['decimal_point'], $locale['decimal_point'], $locale['thousands_sep'] );
PHP์ number_formatย ์ locale ์ค์ ์ ์ฌ์ฉํ์ง ์๋์ง setlocale() ์ ํด ์คํ์ localeconv() ๋ก ์ค์ ์ ์ป์ด์จ ํ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
ubuntu ์์ setlocale ์ด ์คํจํ ๊ฒฝ์ฐ locale-gen ๋ช ๋ น์ด๋ก ํด๋น locale ์ ์์ฑํด ์ค์ผ ํฉ๋๋ค.
sudo locale-gen fr_FR.UTF-8