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

 演示如下:



 

人民币大写转化函数(VB.NET版) 看了二十四画生的Blog的大小写金额转换函数,自己也对照着写了个VB.NET的,然后用类封装了一下。     Public Class Currency         Inherits Object           Private Const CST_CAPSTR_TAIL As String = "整"         Private Const CST_CAPSSTR_ZERO As S 阅读详情

相关推荐

vb.net入门

第一讲 一、vb.net的特点: 网络环境编程,对象技术和组件技术有机结合,多语言,功能强,软件开发短平快,应用面广。 二、引例 要求:通过手动、自动button调整label标签的位置(上下或左右),每次移动距离的大小确定为5 手动时,点击手动button,图片移动5(方向根据需要确定) 自动时,采用定时器控制图片移动 要点:让图片在窗体里循环出现,需要判断图片是否出窗体,若出...

qq_28011221的博客 742

VB实现数字到中文金额的转换函数

VB实现数字到中文金额的转换函数

键盘上的舞指 584

这是一个可以将阿拉伯数字金额转换为中文大写金额的类,vb.net可用

这是一个可以将阿拉伯数字金额转换为中文大写金额的类,vb.net可用

VB.net中金额大写转换

Module Currency Public Class Converter Inherits Object Private Const CST_CAPSTR_TAIL As String = "整" Private Const CST_CAPSSTR_ZERO As String = "零" Private Const C

Dexter's Laboratory 1881

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

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

vb.net2010 大写数字转换程序

用visual basic 2010编写的中文数字大写转换程序源代码码,完整实用,欢迎使用。

[源码][VB.Net]数字转大写数字和大写人民币函数

[源码][VB.Net]数字转大写数字和大写人民币函数Namespace Hot.Common    Public Class NumUtil        数字转成人民币大写        Public Shared Function CapitalRMB(ByVal Num As Decimal) As String   得到大写金额            ----------

何志林的专栏 2443

VB.net 汉字拼音码转换 (支持简繁体汉字、全角数字字母)

VB.net 汉字拼音码转换 (支持简繁体汉字、全角数字字母) 嗯! 写了个转换字符的类,汉字(简繁体)转换拼音首字母编码 包括:全角字母数字转换。输入:任意字符串, 输出:字母加数字。 PyZm(ByVal Str As String, Optional ByVal FH As Integer = 0):获取单字母码串。 Dyz(ByVal Str As String, Optional ByVal FH As Integer = 0):获取多音字,多字母码串。 FH: 过滤开关。0:只保留Str中的汉字字母数字,获取输出;1:保留可识别的字母数字(全角数字字母、罗马数字、双位数字等);2:将不能识别的字符远洋保留到输出。

关于使用VB.NET处理人民币大小写转换

If fen > 0 Then result &= (If(jiao = 0 AndAlso fen > 0, "零", "")) & nums(fen) & units(1)Dim units() As String = {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"}Dim numbers() As String = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}

cncbook1979的博客 451

asp.net(vb)实现金额转换成大写的函数

代码如下: ”’ <summary> ”’ 将数据转换为Double数字 ”’ </summary> ”’ <param name=”Obj”></param> ”’ <returns></returns> ”’ <remarks></remarks> Public Shared Function todbl(ByVal Obj As Object) As Double If Obj Is DBNull.Value Then Return 0 ElseIf IsNumeric(Obj) = False Then Return 0 Else Return Obj End If End Funct

模拟调制系统实战:从AM到FM的5种调制方式对比与选型指南

本文深度解析AM、DSB、SSB、VSB、FM五种经典模拟调制方式,从实现电路、频谱效率、抗噪性能及工程成本等维度进行实战对比。通过MATLAB/Simulink仿真案例,提供清晰的选型决策框架,帮助工程师在无人机图传、短波通信、广播系统等具体项目中,根据带宽、功耗和抗干扰需求选择最优方案。

study的专栏 928

人民币小写转大写金额(可达千百万亿)

在很多企业级的软件开发中,很多时候会涉及到人民币的小写转大写。原来有个VB6的程序,现转为.Net,实现相当简单,同时支持达千百万亿的金额转换。现贴出代码以供参考:(本思路有别于网上很多的代码,通读易懂,可说是最佳实现) /// <summary> /// 小写金额转换成大写金额 /// </summary>...

weixin_33725722的博客 693

SIwave学习记录:电热耦合仿真

SIwave电热耦合仿真

m0_68174736的博客 2335

将人民币的数字表示转化成大写表示(VB.NET版) (原chenyu001C#版)

将人民币的数字表示转化成大写表示(VB.NET版)  本代码参考chenyu001 将人民币的数字表示转化成大写表示(C#版)  http://dev.csdn.net/article/28/28977.shtm改的不多,但愿这些改动没让原作者发怒Public Class ChineseNum    输入字串    Private _InputString

水如烟 3520

MacBook用户必看:用Homebrew一键搞定frp内网穿透(含阿里云配置模板)

本文为MacBook用户提供基于Homebrew的frp内网穿透实战指南,详细介绍了从环境准备到阿里云服务器配置的全过程。通过Homebrew一键安装frp客户端,结合阿里云配置模板,实现高效稳定的内网穿透,适用于远程开发、IoT设备调试等多种场景。

weixin_28692817的博客 321

solidworks vba二次开发配合问题

solidworks vba二次开发配合问题二次开发装配的步骤 二次开发装配的步骤 solidworks可以使用宏录制配合过程从而得到配合的vba代码,步骤如下: 1.选择两个配合的面(点、线等) 2. 建立配合 例如将两个圆柱面同心(图中高亮): 配合后 我们看一下宏录制的代码: Sub main() //激活solidworks接口 Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc //选择两个圆柱面,注意此处是根据坐标选择,不

Alejandro123的博客 3403

人民币大写转化之各种语言

网上荡来的  不要鄙视砸门啊

php丶小菜鸟 992

适航规章、标准,书籍资料下载汇总(更新中)

以下是一些收集到的适航相关的资料,分享给大家。(如果没有你想要的资料,请留言,等找到会及时更新!

qq_41854911的博客 2541

金额小写变大写 VB版本

 / / 金额小写变大写 / / / Public Shared Function gMoney(smallnum As Decimal) As String   Dim cmoney, cnumber, cnum, cnum_end, cmon, cno, snum, sno As String   Dim snum_len, sint_len, cbegin, zflag,

go2newlife的专栏 928

C# 上位机 YOLO 实战:从数据采集到目标识别的全流程拆解

本文以工业螺栓缺陷检测为例,完整拆解了C#上位机+YOLO从数据采集到目标识别的全流程。数据采集:保证图像质量,线程安全采集,必要时归档数据;预处理:适配YOLO模型输入格式,复用对象减少内存开销;推理解析:正确解析张量结果,过滤低置信度目标;落地环节:可视化展示结果,实现工业交互和日志记录。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1451

STM32Cube高效开发教程<高级篇><FreeRTOS>(十八)-----软件定时器

一、 软件定时器概述声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(高级篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。在FreeRTOS中,自动创建的任务有空闲任务和定时器服务任务。FreeRTOS可以通过定时器服务任务提供软件定时器功能。在某些对定时精度要求不太高,无须使用硬件定时器的情况下,我们可以使用FreeRTOS的软件定时器。

我的博客 156

人民币大写转换函数(JavaScript)javascript

feedback 1302212 #1楼 2005-03-30 13:08 | 二十四画生 写的不错,我正在看,注释要是中文的就好了。 回复 引用 查看 #2楼[楼主] 2005-03-30 13:16 | laser.net 过奖了,是以前帮一个朋友写的,没有仔细测试过,当然更没有优化了,如果有问题请大家指出:) 回复 引用 查看 #3楼[楼主] 2005-03-3

chaoxidawang的专栏 648

Linux 内核参数:meminfo

内存管理是一个相对复杂的内核模块,错综复杂的数据结构和管理逻辑。Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。本文要分析的节点meminfo是Linux 操作系统中查看系统内存最准确(meminfo 中有内存黑洞)的方法,它包含当前时刻系统的所有物理页面的信息。

私房菜 2413

将人民币的数字表示转化成大写表示

 将人民币的数字表示转化成大写表示(VB.NET版) 本代码参考chenyu001 将人民币的数字表示转化成大写表示(C#版) http://dev.csdn.net/article/28/28977.shtm改的不多,但愿这些改动没让原作者发怒Public Class ChineseNum    输入字串    Private _InputString

jujuchen的专栏 670

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: vb.net 2010入门(2)-使用较复杂的输入控件
下一篇: Silverlight 5 轻松开启绚丽的网页3D世界
deepfuture
博客等级 码龄17年 210粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值