Форматирование японской валюты для удобства чтения

Я хотел бы отформатировать японскую валюту в стандартный «быстро читаемый» формат.

В основном, все суммы свыше 10000 иен пишутся с использованием символа «万» (произносится «человек»).

Больше на «万»http://www.romajidesu.com/kanji/%E4%B8%87

Таким образом, 1 000 000 иен были бы просто 100 万 или «сто человек». Это примерно 1000 долларов США.

Практически никто в Японии никогда не скажет «миллион иен». Валюта всегда разбита на связки по 10 000 иен.

Следовательно, когда вы покупаете автомобиль, наклейка на лобовом стекле гласит (например, «140 万»).

Итак, я хотел бы показать этот формат. Тем не менее, я думаю, что number_format не позволяет определить разделение в 10 000, а money_format также бесполезен.

Есть какие-нибудь мысли о методе наилучшей практики для достижения этой цели?

В итоге:

  • 10000 иен следует читать 1 万
  • 100 000 иен следует читать 10 万
  • 1 000 000 иен следует читать 100 万

-1

Решение

Решение, которое я придумал, похоже на вышеприведенное.

function format_yen_for_display($yenAmount)
{
/*
Converts Japanese currency to easily readable local format

10,000 yen should read 1万
100,000 yen should read 10万
1,000,000 yen should read 100万
1,259,000 yen should read 125万 9,000円
*/

if($yenAmount > 10000)
{
//amount over 1万
$manYen = floor($yenAmount/10000);

//amount under 1万
$remainderYen = ($yenAmount - ($manYen * 10000));

//concat
$returnNum = "<span class=\"ylarge\">" . $manYen . "万</span>";

//if remainder is more than zero, show it
if($remainderYen > 0)
{
//format remainder with thousands separator
$remainderYen = number_format($remainderYen);

$returnNum .= "<span class=\"ysmall\">" . $remainderYen ."円</span>";
}
}
else
{
$returnNum = "<span class=\"ylarge\">" . $yenAmount . "円</span>";
}
return $returnNum;
}
0

Другие решения

Я когда-либо писал это в моем Плагин WordPress,

/**
* convert number expressions to value
*
* @assert ("34000") == "3万4000円"* @assert ("123456.789") == "12万3457円"* @assert ("1234567890") == "12億3456万7890円"* @assert ("92610000000000") == "92兆6100億円"*/
public static function formatInJapanese($value) {
$isApproximate = false;
$formatted = '';
if ($value > 1000000000000) {
if ($value % 1000000000000 !== 0) {
$isApproximate = true;
}
$unitValue = floor($value / 1000000000000);
$formatted .= $unitValue . '兆';
$value -= $unitValue * 1000000000000;
}
if ($value > 100000000) {
if ($value % 100000000 !== 0
&& !$isApproximate) {
$isApproximate = true;
}
$unitValue = floor($value / 100000000);
$formatted .= $unitValue . '億';
$value -= $unitValue * 100000000;
}
if ($value > 10000) {
if ($value % 10000 !== 0
&& !$isApproximate) {
$isApproximate = true;
}
$unitValue = floor($value / 10000);
$formatted .= $unitValue . '万';
$value -= $unitValue * 10000;
}
if ($value != 0) {
$formatted .= round($value);
}
return $formatted . '円';
}

Это работает только с человеком, оку и чо.

Быстрый поиск дает мне этот рубиновый камень number_to_yen делать подобное.

-1

По вопросам рекламы [email protected]