注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Xueron Nee

To be, or not to be: that's the question

 
 
 

日志

 
 

Perl 转换数字到人民币金额  

2007-02-08 10:37:41|  分类: 码到功程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#!/usr/bin/perl -w  #  # Xueron Nee <xueron@xueron.com> Blog:http://www.blog.163.com/xueron/  #  # PHP版本作者 cyman20 <cyman20@sina.com> Blog:http://blog.csdn.net/cyman20/  #  use strict;  my $num = 123308840;  print "num: $num\n";  print num2rmb($num) . "\n";    sub num2rmb {      my $num = shift or return '';      my @c1  = qw/零 壹 贰 叁 肆 伍 陆 柒 捌 玖/;      my @c2  = qw/分 角 元 拾 佰 仟 万 拾 佰 仟 亿/;        $num = 100 * (sprintf "%.2f", $num);        return '' if length($num) > 12;        print "dbg: $num\n";        my $i = 0;      my $c = '';      while (1) {          my $n;          if ($i == 0) {              $n = substr $num, -1;          } else {              $n = $num % 10;          }          my $p1 = $c1[$n];          my $p2 = $c2[$i];          if ($n ne '0' || ($n eq '0' && ($p2 eq '亿' || $p2 eq '' || $p2 eq ''))) {              $c = $p1 . $p2 . $c;          } else {              $c = $p1 . $c;          }          $i ++;          $num = sprintf "%d", $num / 10;          if ($num == 0) {              last;          }      }        print "dbg: before: $c\n";        # 去掉多余的'零', UTF-8 版本的汉字字符长是3, GB2312汉字字符长是2      my $j    = 0;      my $slen = length($c);      while ($j < $slen) {          my $m = substr($c, $j, 6); # UTF-8          print "dbg: temp = $m\n";          if ($m eq '零元' || $m eq '零万' || $m eq '零亿' || $m eq '零零') {              my $left  = substr($c, 0, $j);              my $right = substr($c, $j + 3);  # UTF-8               $c = $left . $right;              $j    -= 3; # UTF-8              $slen -= 3; # UTF-8          }          $j += 3; # UTF-8      }        # 去掉最后的'零', UTF-8 版本的汉字字符长是3, GB2312汉字字符长是2      if (substr($c, -3) eq '') { # UTF-8          $c = substr($c, 0, -3); # UTF-8      }        print "dbg: result: $c" . "\n";        return $c . "";  }  
  评论这张
 
阅读(174)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017