`
deepfuture
  • 浏览: 4410300 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80116
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70284
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103553
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286482
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15037
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67759
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32276
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46065
社区版块
存档分类
最新评论

vb.net编写人民币小写转大写

 
阅读更多

填写票据和结算凭证.必须做到标准化.规范化.要要素齐全.数字正确.字迹清晰.不错漏.不潦草.防止涂改.中文大写金额数字应用正楷或行书填写.如壹(壹).贰(贰).叁.肆(肆).伍(伍).陆(陆).柒.捌.玖.拾.佰.仟.万(万).亿.元.角.分.零.整(正)等字样.不得用一.二(两).三.四.五.六.七.八.九.十.念.毛.另(或0)填写.不得自造简化字.如果金额数字书写中使用繁体字.如贰.陆.亿.万.圆的.也应受理.

一.中文大写金额数字到"元"为止的.在"元"之后.应写"整"(或"正")字.在"角"之后.可以不写"整"(或"正")字.大写金额数字有"分"的."分"后面不写"整"(或"正")字.

二.中文大写金额数字前应标明"人民币"字样.大写金额数字有"分"的."分"后面不写"整"(或"正")字.

三.中文大写金额数字前应标明"人民币"字样.大写金额数字应紧接"人民币"字样填写.不得留有空白.大写金额数字前未印"人民币"字样的.应加填"人民币"三字.在票据和结算凭证大写金额栏内不得预印固定的"仟.佰.拾.万.仟.佰.拾.元.角.分"字样.

四.阿拉伯数字小写金额数字中有"0"时.中文大写应按照汉语语言规律.金额数字构成和防止涂改的要求进行书写.举例如下:

1·阿拉伯数字中间有"0"时.中文大写要写"零"字.如¥1409.50.应写成人民币陆壹仟肆佰零玖元伍角.

2·阿拉伯数字中间连续有几个"0"时.中文大写金额中间可以只写一个"零"字.如¥6007.14.应写成人民币陆仟零柒元壹角肆分.

3·阿拉伯金额数字万位和元位是"0".或者数字中间连续有几个"0".万位.元位也是"0".但千位.角位不是"0"时.中文大写金额中可以只写一个零字.也可以不写"零"字.如¥1680.32.应写成人民币壹仟陆佰捌拾元零叁角贰分.或者写成人民币壹仟陆佰捌拾元叁角贰分.又如¥107000.53.应写成人民币壹拾万柒仟元零伍角叁分.或者写成人民币壹拾万零柒仟元伍角叁分.

4·阿拉伯金额数字角位是"0".而分位不是"0"时.中文大写金额"元"后面应写"零"字.如¥16409.02.应写成人民币壹万陆仟肆佰零玖元零贰分,又如¥325.04.应写成人民币叁佰贰拾伍元零肆分.

五.阿拉伯小写金额数字前面.均应填写人民币符号"¥".阿拉伯小写金额数字要认真填写.不得连写分辨不清.

六.票据的出票日期必须使用中文大写.为防止变造票据的出票日期.在填写月.日时.月为壹.贰和壹拾的.日为壹至玖和壹拾.贰拾和叁拾的.应在其前加"零",日为拾壹至拾玖的.应在其前加"壹".如1月15日.应写成零壹月壹拾伍日.再如10月20日.应写成零壹拾月零贰拾日.

七.票据出票日期使用小写填写的.银行不予受理.大写日期未按要求规范填写的.银行可予受理.但由此造成损失的.由出票人自行承担.

代码如下:

 

    Private Function transnumber(ByVal number) As String
        '小写转大写
        '编写者:deepfuture@vip.qq.com
        '时间:2012-04-11
        'blog:deepfuture.iteye.com
        Dim numstr As String
        Dim radixpointlocation As Integer
        '小写转大写的映射数组
        Dim numberarray(9) As String
        '数位数组
        Dim digitplace(13) As String
        '币值
        Dim valuta(2) As String
        '小数点前
        Dim strbeforeradix As String
        '小数点后
        Dim strafterradix As String
        '整
        Dim zheng As String
        '需要用到的模式匹配
        Dim strpattern As String

        '临时用变量
        Dim tempstr1 As String
        Dim tempstr2 As String
        Dim i As Integer
        '结果字符串
        Dim transresult As String
        '转换用相关数组
        numberarray(0) = "零"
        numberarray(1) = "壹"
        numberarray(2) = "贰"
        numberarray(3) = "叁"
        numberarray(4) = "肆"
        numberarray(5) = "伍"
        numberarray(6) = "陆"
        numberarray(7) = "柒"
        numberarray(8) = "捌"
        numberarray(9) = "玖"
        digitplace(0) = "元"
        digitplace(1) = "拾"
        digitplace(2) = "佰"
        digitplace(3) = "仟"
        digitplace(4) = "万"
        digitplace(5) = "拾"
        digitplace(6) = "佰"
        digitplace(7) = "仟"
        digitplace(8) = "亿"
        digitplace(9) = "拾"
        digitplace(10) = "佰"
        digitplace(12) = "仟"
        digitplace(13) = "万"
        valuta(0) = "元"
        valuta(1) = "角"
        valuta(2) = "分"
        zheng = "整"
        strbeforeradix = "人民币 "
        strafterradix = ""
        '从控件中取得数字值,同时删除千位符","
        numstr = number.Replace(",", "")
        '找到小数点位置
        radixpointlocation = (numstr.IndexOf("."))
        '开始转换
        '先转换小数点后的小数
        If radixpointlocation = -1 Then
            '数为整数
            strafterradix = valuta(0) + zheng
        Else
            '不是整数,先读取小数部分
            tempstr1 = Trim(numstr.Substring(radixpointlocation + 1))
            i = 1
            For Each tempstr2 In tempstr1
                strafterradix += numberarray(tempstr2) + valuta(i)
                i = i + 1
            Next
            '处理小数的各种特殊情况
            strafterradix = strafterradix.Replace("零分", "整")
            strafterradix = strafterradix.Replace("零角", "零")
            strafterradix = strafterradix.Replace("零零", "")
            strafterradix = strafterradix.Replace("零整", "整")
            If strafterradix.Length = 0 Or strafterradix.Length = 2 Then
                strafterradix &= "整"
            End If

        End If
        tempstr1 = Trim(numstr).Substring(0, IIf(radixpointlocation = -1, numstr.Length, radixpointlocation))
        If tempstr1.Length > 13 Then
            Return "数字太大,本程序无法转换" & numstr
        End If
        i = tempstr1.Length - 1
        For Each tempstr2 In tempstr1
            strbeforeradix &= numberarray(tempstr2) + digitplace(i)
            i -= 1
        Next
          strbeforeradix = strbeforeradix.Replace("零拾", "零")
        strbeforeradix = strbeforeradix.Replace("零佰", "零")
        strbeforeradix = strbeforeradix.Replace("零仟", "零")
        transresult = strbeforeradix + strafterradix
        '处理多个0的情况
        Dim findzero As Boolean = False
        Dim mystr As String = ""
        tempstr2 = ""
        For Each tempstr1 In transresult
            If tempstr1 = "零" Then
                findzero = True
                mystr = ""
            Else
                If findzero Then
                    mystr = "零" & tempstr1
                    findzero = False
                Else
                    mystr = tempstr1
                End If
            End If

            tempstr2 += mystr
        Next
        tempstr2 = tempstr2.Replace("零万", "万")
        tempstr2 = tempstr2.Replace("零亿", "亿")
        tempstr2 = tempstr2.Replace("零元", "元")
        transresult = tempstr2
        Return transresult
    End Function

 演示如下:



 

  • 大小: 18.7 KB
分享到:
评论

相关推荐

    VB.NET编写的人民币大小写转换工具

    VB.NET编写的人民币大小写转换工具,实现小写转大写,大写转小写。

    vb.net 语言标准 1.1

    该版本的标准文档由Paul Vick编写,并代表了Microsoft公司在发布时对VB.NET的理解和设计思想。 ### 介绍 #### Grammar Notation (语法表示) 在VB.NET 1.1中,语法表示法是一种用于定义语言结构和规则的方法。文档...

    VB 金额汉字转大写函数

    本文将详细介绍一个VB(Visual Basic)编写的金额数字转汉字大写的功能函数,并对其内部实现原理进行深入分析。 #### 核心功能说明 该函数的主要目的是接收一个表示金额的字符串参数`money`,并将其转换为符合中国...

    4_VB.Net实现7Bit编码与解码_vb.net_源码.zip

    同样,VB.NET没有内置的7Bit解码方法,需要编写自定义函数来完成: - 接收7位二进制序列,将其转换为对应的ASCII值。 - 将ASCII值转换回字符,并组合成字符串。 5. 示例代码: 由于这里无法展示完整的代码,你...

    VB.NET 2005 VB.NET函数

    VB.NET 2005 提供了一系列的内置函数,这些函数涵盖了数学运算、字符串操作以及随机数生成等多个方面,对于编程初学者来说是极其重要的学习资源。以下是对这些函数的详细解释: 一、数学函数 1. Abs(num): 返回一...

    VB编写的Code128码转换实例

    - Code128B模式:包含所有小写字母、大写字母、数字和32个特殊符号( !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)及128个ASCII值在95-127之间的字符。 - Code128C模式(也称为Code128F):用于编码连续的数字,两个数字一...

    C#/VB .NET Coding Guidelines

    本文档主要介绍了C#和VB .NET编程语言中的编码规范,旨在帮助开发人员编写出高质量、可维护的代码。这些指南不仅适用于初学者,也适合有一定经验的开发人员进行参考。下面将详细介绍文档中提到的各项编码规范及其...

    VB.NET讲义.doc

    VB.NET是一种基于.NET框架的编程语言,主要用于构建Windows桌面应用程序。它是Visual Basic的升级版本,引入了更多面向对象编程的概念和技术。在这个讲义中,我们将深入探讨VB.NET的基础知识,包括语言分类、软件...

    软件开发与项目管理-1期 VB.NET代码规范.pdf

    - **VB.NET常见问题**:了解VB.NET编程中常见的陷阱和误区,如类型转换问题、事件处理机制等,避免在编写代码时踩坑。 遵循这些规范和技巧,开发者可以在VB.NET项目中实现高效、整洁且易于维护的代码。对于软件...

    VB.NET/ASP.NET编码规范

    **注意**: 所有这些命名规则中,构成名称的每个单词均应首字母大写,避免全大写或全小写的名称。 #### 三、方法和属性的命名规范 **1. 方法** - 方法名应使用动词或动词短语来命名,无论该方法是函数还是子程序,均...

    vb.net学习文档日文

    根据提供的文件信息,我们可以归纳出一系列关于VB.NET编程的基本规则与最佳实践,这些内容涵盖了从基础知识到高级技巧的多个方面。下面将详细解释这些规则及其重要性。 ### 1. 文件名与类名的一致性 文件名应当与...

    VB整源码判断字符串中某一字符是否大写.rar

    VB编写完整源码判断字符串中某一字符是否大写,执行下面的代码,这个例子简单哦,不多介绍了,直接看代码吧:  If Asc(Mid(Text1, Val(Text2), 1)) >= 65 And Asc(Mid(Text1, Val(Text2), 1))  Label2.Caption = ...

    vb 教案 包含部分代码 用于初学者

    【VB.NET基础教程】 VB.NET是一种面向对象的编程语言,尤其适合初学者入门。它在计算机编程领域属于面向对象程序设计语言,与其他语言如VB、VB.NET、VF、VC、Java、C#等并列。 **1. VB.NET软件界面** VB.NET的开发...

    银行支票套打软件源代码

    这种软件通常由程序员使用编程语言如VB.NET开发,通过提供模板和数据输入接口,能够快速准确地打印出符合标准格式的银行支票。 在手动填写支票时,需要考虑很多细节,例如日期的正确书写(大写和小写的混合格式)、...

    .net设计规约和一个日文汉字转假名的小软件

    7. **.NET框架**:.NET框架是微软开发的一个全面的开发平台,支持多种语言,如C#、VB.NET等。它提供了丰富的库和服务,包括Windows Forms、WPF、ASP.NET等,方便开发者构建各种类型的应用程序。 8. **编程实践**:...

    VB6.0 获取汉字拼音简码(首字母).rar

    4. **大小写转换**:根据需求,你可能需要将首字母转换为大写或小写,VB6提供了`UCase`和`LCase`函数。 5. **异常处理**:某些汉字可能没有对应的拼音,或者在处理过程中可能出现错误。因此,良好的错误处理机制是...

    代码开发规范、团队开发规范

    1. VB.NET的命名规则与C#相似,但使用PascalCase(首字母大写)。 2. 利用`With`块简化代码,减少重复的属性或方法调用。 3. VB.NET中,`Option Strict`和`Option Infer`可以增强类型检查和代码安全性。 四、团队...

    高级密码生成器 VB源码

    3. **枕善居VB源码博客.url、枕善居VB.NET源码博客.url**:这两个URL可能是开发者或相关社区的网站链接,可能包含了更多VB编程和源码相关的资源和讨论。 4. **给 枕善居 发邮件.url**:这可能是一个邮件链接,允许...

Global site tag (gtag.js) - Google Analytics