ホームページ >バックエンド開発 >PHPチュートリアル >数字を人民元の大文字に変換する方法を詳しく解説(PHP版)
人民元は中国の通貨であり、常に最も古く、最も謎に満ちた通貨の 1 つと考えられてきました。数値を人民元の大文字に変換する必要がある場合、このタスクを自動化する方法が必要です。この記事では、PHP を使用して、数値を人民元の大文字に変換するシンプルだが効果的なプログラムを作成する方法を紹介します。
使用する関数
このプログラムを書き始める前に、PHP のいくつかの基本的な関数を理解しておく必要があります。使用する関数のリストは次のとおりです。
実装計画
次の手順を使用してこのプログラムを作成できます:
ステップ 1: Getユーザーが
と入力します。 まず、ユーザーに正の数を入力して変数 $number に保存するように依頼する必要があります。
$number = $_POST['number'];
ステップ 2: 数値を RMB の大文字に変換する
次に、次のコードを使用して数値を RMB の大文字に変換します。
function convert_number_to_rmb($number) { $units = array('分', '角', '元', '十', '百', '千', '万', '十万', '百万', '千万', '亿', '十亿', '百亿', '千亿'); $digit = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); $num_units = count($units); $num_digit = count($digit); // 将数字按小数点分割成整数部分和小数部分 $number_array = explode('.', $number); // 将整数部分拆分成数组 $int_array = str_split($number_array[0]); // 初始化结果 $result = ''; // 添加元和整数部分的大写 for ($i = 0; $i < count($int_array); $i++) { $unit_key = ($num_units - 1) - ((count($int_array) - 1 - $i) % $num_units); $digit_key = $int_array[$i]; $result .= $digit[$digit_key] . $units[$unit_key]; } // 如果有小数部分,添加小数部分的大写 if (count($number_array) == 2) { $fraction_array = str_split($number_array[1]); for ($i = 0; $i < count($fraction_array); $i++) { $unit_key = $num_units - 3 + $i; $digit_key = $fraction_array[$i]; if ($digit_key == 0 && $i == 0) { $result .= '整'; break; } $result .= $digit[$digit_key] . $units[$unit_key]; } } else { $result .= '整'; } return $result; }
この関数では、$units と $digital の 2 つの配列を使用します。 $units には各桁の単位名が含まれ、$digit には各桁の大文字の名前が含まれます。
ステップ 3: 結果を出力します
最後に、結果をユーザー インターフェイスに出力します。
echo "你要转换的数字是:" . $number . "<br>"; echo "转换结果为:" . convert_number_to_rmb($number) . "<br>";
完全なプログラムは次のとおりです:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>数字转换为人民币大写</title> </head> <body> <form method="post"> 请输入需要转换的数字:<input type="text" name="number"><br> <input type="submit" value="转换"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $number = $_POST['number']; echo "你要转换的数字是:" . $number . "<br>"; echo "转换结果为:" . convert_number_to_rmb($number) . "<br>"; } function convert_number_to_rmb($number) { $units = array('分', '角', '元', '十', '百', '千', '万', '十万', '百万', '千万', '亿', '十亿', '百亿', '千亿'); $digit = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); $num_units = count($units); $num_digit = count($digit); // 将数字按小数点分割成整数部分和小数部分 $number_array = explode('.', $number); // 将整数部分拆分成数组 $int_array = str_split($number_array[0]); // 初始化结果 $result = ''; // 添加元和整数部分的大写 for ($i = 0; $i < count($int_array); $i++) { $unit_key = ($num_units - 1) - ((count($int_array) - 1 - $i) % $num_units); $digit_key = $int_array[$i]; $result .= $digit[$digit_key] . $units[$unit_key]; } // 如果有小数部分,添加小数部分的大写 if (count($number_array) == 2) { $fraction_array = str_split($number_array[1]); for ($i = 0; $i < count($fraction_array); $i++) { $unit_key = $num_units - 3 + $i; $digit_key = $fraction_array[$i]; if ($digit_key == 0 && $i == 0) { $result .= '整'; break; } $result .= $digit[$digit_key] . $units[$unit_key]; } } else { $result .= '整'; } return $result; } ?> </body> </html>
概要
この記事では、数値の書き方を紹介しました。 PHP プログラムを使用して RMB を大文字に変換します。 strlen()、str_replace()、str_pad()、mb_substr()、explode() などのいくつかの PHP 関数を使用しました。また、自動化されたストーリーの生成に使用するために、数字を RMB の大文字に変換するためのシンプルだが便利なアルゴリズムも実装しました。
以上が数字を人民元の大文字に変換する方法を詳しく解説(PHP版)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。