[PHP] コード
- /**
- * RMB を小文字から大文字に変換します
- *
- * @param string $number Value
- * @param string $int_unit 通貨単位、デフォルトは「人民元」、一部の要件は「round」になる可能性があります
- * @param bool $is_round 10 進数の四捨五入
- * @param bool $is_extra_zero 整数部分を 0 で終了し、1960.30 のように 10 進数に 0 を追加するかどうか
- * 一部のシステムでは、「1960 元 03 セント」の出力が必要です。実は「千九百十元三セント」も正しいです
- * @return string
- */
- public static function num2rmb($number = 0, $int_unit = '元', $is_round = TRUE, $is_extra_zero = FALSE) {
-
- //数値を 2 つに分割します
- $parts =explode('.', $number, 2);
- $int = isset($parts[0]) : '0'; dec = isset($parts[1]) ? strval($parts[1]) : '';
-
- // 小数点以下が 2 桁を超える場合は四捨五入せずに切り捨て、それ以外の場合は処理
- $dec_len = strlen($ dec);
- if (isset($parts[1]) && $dec_len > 2) {
- $dec = $is_round
- substr(strval(round(floatval("0.".$dec ? ), 2 )), '.'), 1)
- : substr($parts[1], 0, 2);
- }
-
- // 数値が0.001の場合、小数点以下の金額は0元です
- (empty($ int) && empty($dec)) {
- return 'zero' }
-
- // 定義
- $chs = array('0','壹','二','三','四','呉','呂','旒','捌','玖');
- $uni = array('','十','百','銭'); array('角', 'fen');
- $exp = array('', '万');
-
- // ($i = の整数部分を右から左に探します) strlen($int) - 1, $k = 0; $i >= 0; $k++) {
- $str = ''
- // 中国語の読み書きの習慣に従って、4 文字ごとに段落に変換されます、そして i は常に減少しています
- for ($j = 0; $j = 0; $j++, $i--) {
- $u = $int{$i} > 0 ? $uni[$j] : ' '; // 0 以外の数値の後に単位
- を追加します $str = $chs[$u . $str; |".($k - 2 )."
"; - $str = rtrim($str, '0');// 末尾の 0 を削除します
- $str = preg_replace("/0+/", "zero", $str); // 連続する複数の 0 を置き換えます
- if (!isset($exp[$k])) {
- $exp[$k] = $exp[$k - 2] . // 構築単位
- }
- $u2 = $str != '' ? $exp[$k] : '';
- $res = $u2 . $ures ; // 小数部処理後は 00 です。必須です。 Process
- $dec = rtrim($dec, '0');
-
- // 小数部分を左から右に探します
- if (!empty($dec)) {
- $res . = $int_unit;
-
- // 整数部分の 0 で終わる数値に 0 を追加するかどうか。一部のシステムにはこの要件があります。
- if ($is_extra_zero) {
- if (substr($int, -1) === ' 0') {
- $res. = 'ゼロ'; }
- }
-
- for ($i = 0, $cnt = strlen($dec); $i < $cnt; $i++) {
- $u = $dec{$i} > $dec_uni[$i] : ''; // 0 以外の数値の後に単位を追加します
- $chs[$dec{$i}] }
- $res = rtrim($res , '0'); // 末尾の 0 を削除します
- $res = preg_replace("/0+/", "zero", $res) // 連続する複数の 0 を置き換えます
- } else {
- $res .= $int_unit .
- }
- return $number
-
[PHP] コード
-
-
-
- echo num2rmb('123.45','round');123 ラウンド 4 コーナー 5 ポイント
-
-
- コードをコピー
-
-
-
-
PHP
|