`
ddl1st
  • 浏览: 99356 次
  • 性别: 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
分享到:
评论

相关推荐

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

    人民币大写有以下这些基本单位:壹、贰、叁、肆、伍、陆、柒、捌、玖、零、拾、佰、仟、万、亿。数字0-9分别对应它们,每四位作为一个单位,从右向左分别是元、百、十、万,如果有更高的数值,例如千万、亿,规则...

    人民币大写指法和数字练习

    在IT行业中,尤其是在银行业务处理中,正确快速地输入人民币大写数字是一项基本技能...通过这款软件,用户不仅可以学习和练习人民币大写的输入,还可以通过游戏化的设计增加学习的乐趣,使枯燥的技能训练变得生动有趣。

    sql 人民币大写转换函数

    #### 数值转换与格式化 - 使用`ROUND`函数根据`@intIsRound`和`@intPrecision`的值对`@mnyNumber`进行四舍五入或截断处理。 - 将处理后的数值乘以`10^@intPrecision`,以便将数值转换为整数形式进行后续处理。 - 将...

    C#数字转人民币大写

    同时,对于大型项目,可能需要封装成一个类库,提供更丰富的API,包括支持格式化输出、错误处理等功能。 总的来说,将数字转换为人民币大写是C#开发中的一项常见任务,通过理解和运用字符串处理技巧以及对人民币...

    小写人民币转大写ACCESS函数

    ### 小写人民币转大写ACCESS函数解析 #### 背景介绍 在日常的财务工作中,经常需要将数字格式的金额转换成汉字大写形式,尤其是在开具支票、填写电汇凭证或制作记账凭证时更为常见。这种转换不仅能够提高正式文件的...

    C#人民币大写最简单算法

    本文将深入探讨一个用C#实现的人民币大写转换算法,并对其进行详细解析,旨在帮助开发者理解其工作原理并掌握其实现技巧。 ### C#中的人民币大写转换算法 标题所提到的“C#人民币大写最简单算法”实际上是一种将...

    人民币大写转换程序(非常好用)

    例如,Python的字符串格式化或者内置的`str.zfill()`方法可以帮助完成这个任务。 7. **用户体验**:如果这是一个用户界面程序,那么考虑用户交互和反馈也非常重要。良好的用户界面设计可以使输入和验证过程更加直观...

    转换人民币大写金额

    "转换人民币大写金额"是一个常见的需求,尤其是在财务报表、发票开具以及银行交易中,因为大写金额可以防止数字输入错误。本示例中的C#代码提供了一个解决方案,允许开发者将数字金额转换为标准的中文大写格式。 在...

    人民币大写转换

    6. **扩展应用**:除了基础的数字转换,更复杂的系统可能需要支持金额格式化,比如添加千位分隔符,或者根据用户设置的货币格式进行转换。 7. **标准与法规**:转换过程需要遵循国家和行业的标准,如《中华人民...

    小写人民币转大写人民币

    首先,我们需要了解人民币大写的基本规则。人民币大写的表示方式如下: 1. 零:零 2. 一:壹 3. 二:贰 4. 三:叁 5. 四:肆 6. 五:伍 7. 六:陆 8. 七:柒 9. 八:捌 10. 九:玖 11. 十:拾 12. 百:佰 13. 千:...

    jquery格式化大写金额组件

    **jQuery格式化大写金额组件**是一个用于将数字金额转换为中文大写的JavaScript插件,广泛应用于财务报表、发票和银行系统中。该组件提供了一种标准且方便的方式来处理金融数据的显示,确保了在前端界面中金额的正确...

    人民币小写金额转大写

    总之,通过深入理解并灵活运用SQL Server中的自定义函数,可以有效地解决各类数据转换和格式化问题,提升系统的功能性与用户体验。在财务、银行等关键业务场景中,这一技能尤为重要,有助于构建更加安全、合规且用户...

    delphi源码人民币大写转换.txt

    ### Delphi 源码人民币大写转换解析 在日常财务处理、银行系统以及各种会计应用中,将数字金额转换成大写中文金额是一项常见需求。这种转换在合同签署、发票开具等正式场合中尤为重要,因为大写金额可以有效地防止...

    人民币大写函数

    在Excel VBA(Visual Basic for Applications)中,创建一个人民币大写转换函数是一个常见的需求,尤其是在处理财务报表或需要将数字格式转化为规范的中文大写金额时。人民币大写是中文货币表示方式,例如“壹”、...

    人民币转换为大写包含负数

    这涉及到浮点数的处理和格式化。 在提供的文件`moneyTochinese.html`和`金额转换.html`中,很可能包含了具体的实现方法或者示例代码,可以作为参考。这些文件可能包含JavaScript、Python或其他编程语言的函数,用于...

    Java人民币金额数字转换成大写

    在 SimpleMoneyFormat 类中,我们使用 NumberFormat 对象来格式化人民币金额数字,并使用 HashMap chineseNumberMap 和 chineseMoneyPattern 来将数字转换成中文数字和人民币金额。 例如,数字 123456.78 将被转换...

    Rmb.rar_人民币 转换 java_人民币大写

    程序可能包含一个方法,接收一个数字作为输入,然后通过一系列步骤将其转换为人民币大写的格式。这包括但不限于: 1. **数字处理**:将输入的数字进行正负判断,处理小数点,以及零的特殊处理。负数前会添加“负”...

    人民币大写转换的程序源码

    ### 人民币大写转换程序解析 #### 一、概述 在财务系统中,为了确保资金安全及法律合规性,常需要将数字金额转换为大写形式。本篇将基于提供的程序代码片段,深入分析实现人民币金额(不超过亿元)大写转换的逻辑...

    阿拉伯数字转换为人民币大写

    这个过程通常涉及到数字的格式化和字符映射,确保每个数字都能正确对应到其对应的中文大写形式。 首先,我们要理解阿拉伯数字(0-9)和对应的人民币大写字符关系。阿拉伯数字0对应的是中文的大写零(零),1对应一...

Global site tag (gtag.js) - Google Analytics