Heim > php教程 > php手册 > Hauptteil

整型数字转汉字,如: [101] ->[一百零一]

WBOY
Freigeben: 2016-06-07 11:44:09
Original
1187 Leute haben es durchsucht

昨天发布了一段汉字转数字的代码,应该网友的要求,再写一个反转的算法,经过简单测试没发现问题,现在把代码分享出来,感兴趣的朋友可以来测试一下,呵呵,如果有更好的算法,也请拿出来分享下,最好是原创代码哦!
test2();<br> <br> /**<br>  * 方法测试<br>  */<br> function test2() {<br>     echo '333030.22  =>  ' . IntToCn(333030.22) . '<hr>'; // 三十三万三千零三十<br>     echo '1111  => ' . IntToCn(1111.0001) . '<hr>'; // 一千一百一十一<br>     echo '101010101 => ' . IntToCn(101010101) . '<hr>'; // 一亿一百零一万零一百零一<br> }<br> <br> /**<br>  * 数字转中文<br>  * @param Int $num 需要解析的数字<br>  * @param String $string 初始值<br>  * @return String<br>  * @author Anyon Zou <zoujingli><br>  * @date 2013-08-22 01:20<br>  */<br> function IntToCn($num, $string = array()) {<br>     if (!is_numeric($num)) {<br>         return $num;<br>     }<br>     $splits = array('100000000' => '亿', '10000' => '万');<br>     $chars = array('10000' => '万', '1000' => '千', '100' => '百', '10' => '十', '1' => '', '0' => '零');<br>     $ints = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十');<br> <br>     /*<br>      * 拆分整数与小数<br>      */<br>     $nums = explode('.', "{$num}");<br>     $num = $nums[0];<br>     // 处理小数<br>     $dou = array();<br>     if (!empty($nums[1])) {<br>         foreach (str_split("{$nums[1]}") as $n) {<br>             if (is_numeric($n)) {<br>                 $dou[] = $ints[intval($n)];<br>             }<br>         }<br>     }<br>     unset($nums);<br> <br>     foreach ($splits as $step => $split) {<br>         $floor = $step > 0 ? floor($num / intval($step)) : '0';<br>         if ($floor > 0) {<br>             $string[] = IntToCn($floor) . $split;<br>             $num = fmod($num, $step);<br>         }<br>     }<br>     $string2 = array();<br>     foreach ($chars as $step => $char) {<br>         $floor = $step > 0 ? floor($num / intval($step)) : '0';<br>         if ($floor > 0) {<br>             $string[] = $string2[] = $ints[$floor] . $char;<br>             $num = fmod($num, $step);<br>         } else if ((count($string2) > 0 || (count($string) > 0 && $step != '10000')) && $string2[count($string) - 1] != $ints[0] && $num > 0) {<br>             $string[] = $ints[0];<br>         }<br>     }<br>     if (!empty($dou)) {<br>         $string = array_merge($string, array('点'), $dou);<br>     }<br>     return join('', $string);<br> }</zoujingli>测试结果
整型数字转汉字,如: [101] ->[一百零一]

AD:真正免费,域名+虚机+企业邮箱=0元

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage