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


Ref