`
ddl1st
  • 浏览: 95785 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

人民币大写格式化

    博客分类:
  • Ruby
阅读更多
conf/initializers/float.rb
# encoding: utf-8
class Float
  Numbers   =   {"0" => "零", "1" => "壹", "2" => "贰", "3" => "叁", "4" => "肆", "5" => "伍", "6" => "陆", "7" => "柒", "8" => "捌", "9" => "玖"}
  Positions =   {"0" => "元", "1" => "拾", "2" => "佰", "3" => "仟", "4" => "万", "5" => "拾", "6" => "佰", "7" => "仟", "8" => "亿", "9" => "拾","10" => "佰", "11" => "仟"}
  Fraction  =   {"0" => "角", "1" => "分"}
  def to_zh
    
    first_nu,last_nu = abs.to_s.split(".")
    raise "小数点必须保留两位" if last_nu.length > 2
    raise "单位必须小于或等于(亿)" if first_nu.length > 11

    ary = []
    fraction = []
    num_to_zh = first_nu.reverse.split('').collect{|s|  Numbers[s.to_s]}

    num_to_zh.each_with_index{|x,v|  ary.unshift(x == "零" ? ( v == 4 ? "万" : v == 8 ? "亿" : "零") : [x ,Positions[v.to_s]])}
    
    last_nu.split('').each_with_index{|m,o| fraction << [Numbers[m.to_s],Fraction[o.to_s]]}

    
   (self < 0 ? "负" : "") +  (ary.join.gsub(/零+/,"零").gsub(/零亿/,"亿零").gsub(/零万/,"万零").gsub(/零+/,"零").gsub(/零$/,"元") + (last_nu == "0" ? "整" : fraction.join.gsub(/零角/,"零")))
  end
end
分享到:
评论

相关推荐

    转变数字为大写人民币格式

    将数字转变为大写的人民币格式输出比如 1024356 输出为:一百零拾二万四千三百五拾六

    java实现将数字转换成人民币大写

    前面给大家介绍过使用javascript,php,c#,python等语言实现人民币大写格式化,这篇文章主要介绍了java实现将数字转换成人民币大写的代码,非常的简单实用,分享给大家,需要的朋友可以参考下

    BAT批处理脚本-格式转换-人民币金额小写转大写.cmd.zip

    为避免误触发,有些改为了txt格式,使用时请自行查看业务然后改为bat格式即可。

    一点通通用收据打印软件v2.38中文官方最新安装版

    一点通通用收据打印软件是一款简单易用,功能丰富的收据打印软件,用户可以通过它更加方便地打印、管理统一...3、自动生成人民币大写 4、可对收据进行保存、修改、删除、查询统计等管理操作 5、可设置编辑打印模板 6

    简洁收据打印专家

    一款简单实用,很人性化的,可以让用户自己定义界面和... 2、自动生成人民币大写  3、可对收据进行保存、修改、删除、查询等管理操作  4、分类统计收据款项  5、权限管理和数据备份  6、以Excel表格形式导出记录

    前端js-jshelper帮助类(全面)

    编码/解码、阻止事件冒泡、阻止默认行为、localStorage对象方法、复制到粘贴板、将数字转换成人民币大写的方法、得到合理的金额数字、格式化金额(自定义分隔符)、画线等等各种方法,可以随意调用!(需要依赖jquery...

    通达信公式破解通达信公式破解

    日期自动生成,智能自动记忆功能,输入数字金额,自动转换大写或人民币大写形式,最大限度避免因手工填写票据所产生的差错,将工作人员从繁杂的票据中解脱出来。打印出来的票据准确清晰,不易涂改,对于防范风险、...

    海杰支票票据打印系统4.98破解版

    两种标准大写金额格式设定;两种大写日期(月份)设定;历史记录排列顺序设定。 6、支票自动关联进账单、背书,自动生成存根,从而把需要填写的票据内容降低到最低程度。 7、本系统适合各种型号的打印机,不必担心...

    大小写金额转换-源码

    //下面的代码被lichaohui格式化整理 if NN &gt; 9999999999999.99 then begin //MessageDlg(‘金额溢出。‘,mtError,[mbOk], 0); HZ := ‘‘; Result := HZ; exit; end; if NN = 0 then begin HZ := ‘零元‘; result ...

    Yi-CMS-Laravel:Laravel购物中心

    会员模块注册,邮箱,手机号,微信等第三方授权注册密码修改,重置扩展会员成长,签到代码格式化代码的格式,选择Laravel风格代码提交前一定要通过格式化+优化导入编码设计规范短函数,单函数不超过80行,最好40以内...

    功能最全的票据打印系统

    两种标准大写金额格式设定;两种大写日期(月份)设定;历史记录排列顺序设定。 6、支票自动关联进账单、背书,自动生成存根,从而把需要填写的票据内容降低到最低程度。 7、本系统适合各种型号的打印机,不必担心...

    Exce百宝箱——2012版本.rar

    函数功能与参数:将阿拉伯数字转为人民币金额大写。仅需要一个参数,即单元格引用。 函数名称:批注 函数功能与参数:提取批注中的文字。只有一个参数,即单元格引用。 函数名称:合并 函数功能与参数:将区域...

    Excel百宝箱9.0无限制破解版.rar

    函数功能与参数:将阿拉伯数字转为人民币金额大写。仅需要一个参数,即单元格引用。 函数名称:批注 函数功能与参数:提取批注中的文字。只有一个参数,即单元格引用。 函数名称:合并 函数功能与参数:将区域...

    VBA常用技巧

    技巧161格式化数值、日期和时间392 技巧162个人所得税自定义函数394 技巧163人民币大写函数396 技巧164列号转换为列标398 技巧165判断工作表是否为空表399 技巧166查找指定工作表400 技巧167查找指定工作簿是否打开...

    Excel百宝箱8.0

    函数功能与参数:将阿拉伯数字转为人民币金额大写。仅需要一个参数,即单元格引用。 函数名称:批注 函数功能与参数:提取批注中的文字。只有一个参数,即单元格引用。 函数名称:合并 函数功能与参数:将区域...

    Excel百宝箱 9.0 破解版 批量导入图片等200种功能

    大写将阿拉伯数字转为人民币金额大写。仅需要一个参数,即单元格引用 批注提取批注中的文字。只有一个参数,即单元格引用 合并将区域字符合并。第一参数为分割符,第二参数为引用区域。可以用""表示不使用分割符。第...

    EXCEL百宝箱8.0终极版

    函数功能与参数:将阿拉伯数字转为人民币金额大写。仅需要一个参数,即单元格引用。 函数名称:批注 函数功能与参数:提取批注中的文字。只有一个参数,即单元格引用。 函数名称:合并 函数功能与参数:将区域...

    VBA编程技巧大全

    技巧161 格式化数值、日期和时间 394 技巧162 个人所得税自定义函数 396 技巧163 人民币大写函数 398 技巧164 列号转换为列标 400 技巧165 判断工作表是否为空表 401 技巧166 查找指定工作表 402 技巧167 查找指定...

    PB进阶代码(很全的)

    3.5 人民币大写转换函数 -- AmountUppder 3.6 在应用程序中关闭外部程序 -- CloseApp 3.7 在应用程序中启动控制面板项目 -- RunControl 3.8 非Tab分隔符文本文件导入数据窗口 -- ImportFile 3.9 编译后的程序带...

Global site tag (gtag.js) - Google Analytics