php人民币小写转大写的函数,不限长度,精确到分(推荐)
本文介绍下,php实现的一个人民币小写转大写的函数,不限数字长度,可以精确到分。有需要的朋友,参考下吧。
在打印发票或显示账单时,经常需要将人民币的金额由小写转为大写。 以下是一个改进后的人民币小写转大写的函数,功能如下: 1.支持天文数字,整数位理论上可以无限的长; 2.支持小数,对于货币,一般精确到小数后两位,可以设置小数位是否四舍五入; 3.支持自定义货币单位,有的系统要求大写是"圆",有的要求是"元",可以自定义; 4.支持整数以0结束并含有小数的数字自定义末尾补"零",比如有的系统要求1960.30这样的数字转大写之后是"壹仟玖佰陆拾元叁角",而有的系统则要求"壹仟玖佰陆拾元零叁角",这两种情况按"正确填写票据和结算凭证的基本规定"都是正确的,现在可已自定义。 实例代码: <?php /** * 人民币小写转大写 * * @param string $number 数值 * @param string $int_unit 币种单位,默认"元",有的需求可能为"圆" * @param bool $is_round 是否对小数进行四舍五入 * @param bool $is_extra_zero 是否对整数部分以0结尾,小数存在的数字附加0,比如1960.30, * 有的系统要求输出"壹仟玖佰陆拾元零叁角",实际上"壹仟玖佰陆拾元叁角"也是对的 * @return string * @site bbs.it-home.org */ function num2rmb($number = 0, $int_unit = '元', $is_round = TRUE, $is_extra_zero = FALSE) { // 将数字切分成两段 $parts = explode('.', $number, 2); $int = isset($parts[0]) ? strval($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(strrchr(strval(round(floatval("0.".$dec), 2)), '.'), 1) : substr($parts[1], 0, 2); } // 当number为0.001时,小数点后的金额为0元 if(empty($int) && empty($dec)) { return '零'; } // 定义 $chs = array('0','壹','贰','叁','肆','伍','陆','柒','捌','玖'); $uni = array('','拾','佰','仟'); $dec_uni = array('角', '分'); $exp = array('', '万'); $res = ''; // 整数部分从右向左找 for($i = strlen($int) - 1, $k = 0; $i >= 0; $k++) { $str = ''; // 按照中文读写习惯,每4个字为一段进行转化,i一直在减 for($j = 0; $j < 4 && $i >= 0; $j++, $i--) { $u = $int{$i} > 0 ? $uni[$j] : ''; // 非0的数字后面添加单位 $str = $chs[$int{$i}] . $u . $str; } //echo $str."|".($k - 2)."<br>"; $str = rtrim($str, '0');// 去掉末尾的0 $str = preg_replace("/0+/", "零", $str); // 替换多个连续的0 if(!isset($exp[$k])) { $exp[$k] = $exp[$k - 2] . '亿'; // 构建单位 } $u2 = $str != '' ? $exp[$k] : ''; $res = $str . $u2 . $res; } // 如果小数部分处理完之后是00,需要处理下 $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} > 0 ? $dec_uni[$i] : ''; // 非0的数字后面添加单位 $res .= $chs[$dec{$i}] . $u; } $res = rtrim($res, '0');// 去掉末尾的0 $res = preg_replace("/0+/", "零", $res); // 替换多个连续的0 } else { $res .= $int_unit . '整'; } return $res; } echo "<pre class="brush:php;toolbar:false">"; $number = "1000000000000000012345678900.501"; echo $number.":".num2rmb($number); echo "\n"; $number = "1960.30"; echo $number.":".num2rmb($number); echo "\n"; $number = "1960.30"; echo $number.":".num2rmb($number, "圆", true, true); echo "\n"; $number = "123456789.005"; echo $number.":".num2rmb($number); echo "\n"; $number = "123456789.005"; echo $number.":".num2rmb($number, "元", false); echo "\n"; $number = "10000000000000000060009.101"; echo $number.":".num2rmb($number); echo "\n"; $number = "1680.32"; echo $number.":".num2rmb($number); ?> Salin selepas log masuk 输出结果: 1000000000000000012345678900.501:壹仟亿亿亿零壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰元伍角 1960.30:壹仟玖佰陆拾元叁角 1960.30:壹仟玖佰陆拾圆零叁角 123456789.005:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元零壹分 123456789.005:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整 10000000000000000060009.101:壹佰万亿亿零陆万零玖元壹角 1680.32:壹仟陆佰捌拾元叁角贰分 |

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.
