金额阿拉伯数字转换为中文的存储过程

存储过程|金额|中文|转换

Create Procedure AtoC
@ChangeMoney Money
as
Set Nocount ON
Declare @String1 char(20)
Declare @String2 char(30)
Declare @String4 Varchar(100)
Declare @String3 Varchar(100) --从原A值中取出的值
Declare @i int --循环变量
Declare @J Int --A的值乘以100的字符串长度
Declare @Ch1 Varchar(100) --数字的汉语读法
Declare @Ch2 Varchar(100) --数字位的汉字读法
Declare @Zero Int --用来计算连续有几个零
Declare @ReturnValue VarChar(100)

Select @ReturnValue = ''
Select @String1 = '零壹贰叁肆伍陆柒捌玖'
Select @String2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'

Select @String4 = Cast(@ChangeMoney*100 as int)

select @J=len(cast((@ChangeMoney*100) as int))

Select @String2=Right(@String2,@J)

Select @i = 1

while @i<= @j Begin

Select @String3 = Substring(@String4,@i,1)

if @String3<>'0' Begin

Select @Ch1 = Substring(@String1, Cast(@String3 as Int) + 1, 1)
Select @Ch2 = Substring(@String2, @i, 1)
Select @Zero = 0 --表示本位不为零
end
else Begin
If (@Zero = 0) Or (@i = @J - 9) Or (@i = @J - 5) Or (@i = @J - 1)
Select @Ch1 = '零'
Else
Select @Ch1 = ''

Select @Zero = @Zero + 1 --表示本位为0

--如果转换的数值需要扩大,那么需改动以下表达式 I 的值。
Select Ch2 = ''

If @i = @J - 10 Begin
Select @Ch2 = '亿'
Select @Zero = 0
end

If @i = @J - 6 Begin
Select @Ch2 = '万'
Select @Zero = 0
end

if @i = @J - 2 Begin
Select @Ch2 = '元'
Select @Zero = 0
end

If @i = @J
Select @Ch2 = '整'

end

Select @ReturnValue = @ReturnValue + @Ch1 + @Ch2

select @i = @i+1
end

--最后将多余的零去掉
If CharIndex('仟仟',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '仟仟', '仟')

If CharIndex('佰佰',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '佰佰', '佰')

If CharIndex('零元',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '零元', '元')

If CharIndex('零万',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '零万', '万')

If CharIndex('零亿',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '零亿', '亿')

If CharIndex('零整',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '零整', '整')

If CharIndex('零佰',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '零佰', '零')

If CharIndex('零仟',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '零仟', '零')

If CharIndex('元元',@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, '元元', '元')

Select @ReturnValue
GO

时间: 2024-10-07 09:59:31

金额阿拉伯数字转换为中文的存储过程的相关文章

金额阿拉伯数字转换为中文的存储过程(转)

存储过程|金额|中文|转换 Create Procedure AtoC@ChangeMoney Money asSet Nocount ONDeclare @String1 char(20)Declare @String2 char(30)Declare @String4 Varchar(100)Declare @String3 Varchar(100) --从原A值中取出的值Declare @i int --循环变量Declare @J Int --A的值乘以100的字符串长度Declare

金额阿拉伯数字转换为中文的自定义函数

CREATE FUNCTION ChangeBigSmall(@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char(30) Declare @String4 Varchar(100) Declare @String3 Varchar(100) --从原A值中取出的值 Declare @i int --循环变量 Declare @J Int --A的值乘以1

一个将阿拉伯数字转换为中文数字近似读法的程序

    偶尔突发奇想,写了一个将阿拉伯数字转换为中文数字近似值的程序: #include <stdlib.h> #include <stdio.h> #include <limits.h> #include <string.h> #include <stdbool.h> #include <windows.h> const char *ChineseNum[] = {"零","一","

用金山wps轻松将数字转换为中文大写格式

  在今天的金山wps教程中,我们需要学习的是将数字转换为中文大写格式的方法.这一方法,常常用于人民币统计的时候使用.那么,怎么才能做到简单.轻松的将数字转换为中文大写格式呢?小编就以金山WPS2013表格这款办公软件为例子给大家分享一下哦! 将表示金额的阿拉伯数字转换为中文大写形式: 中文大写 把鼠标移动到要设置为中文大写的单元格上,,点击格式菜单的单元格. 在弹出的单元格格式对话框中,在数字一栏中选择特殊,然后在右边类型栏选择人名币大写,确定即可.将身份证号码.手机号码转换为中文大写形式:

WPS2013表格中的数字转换为中文大写

  将表示金额的阿拉伯数字转换为中文大写形式: 把鼠标移动到要设置为中文大写的单元格上,,点击格式菜单的单元格. 在弹出的单元格格式对话框中,在数字一栏中选择特殊,然后在右边类型栏选择人名币大写,确定即可.将身份证号码.手机号码转换为中文大写形式: 选中设置区域,点击格式菜单中的单元格.在数字选项中的分类一栏,选择文本,点击确定.输入身份证号码.手机号码即可.

一个阿拉伯数字转中文数字的函数

函数|中文 最近因需要,写了个"阿拉伯数字转中文数字的函数".搜索了精华区只见到一个类似的.感觉到我的算法不错,所以贴出来共享一下如果要用于金额的转换,对小数部分的处理要做一下修改<?phpfunction ch_num($num,$mode=true) { $char = array("零","壹","贰","叁","肆","伍","陆",

将阿拉伯数字转换为汉字数字,支持到百万亿

'例子: 'Debug.Print UpNumber(-10556765765555.45,0,True ) '显示为: '负壹拾万伍仟伍佰陆拾柒亿陆仟伍佰柒拾陆万伍仟伍佰伍拾伍圆肆角零分 Public Function UpNumber(ByVal Number As Double, Optional ByVal Typ As Long, Optional ByVal IsMoney As Boolean) As String '********************************

一个阿拉伯数字转中文数字的函数_php基础

最近因需要,写了个"阿拉伯数字转中文数字的函数".搜索了精华区只见到一个类似的.感觉到我的算法不错,所以贴出来共享一下如果要用于金额的转换,对小数部分的处理要做一下修改<?phpfunction ch_num($num,$mode=true) {  $char = array("零","壹","贰","叁","肆","伍","陆","

php阿拉伯数字转中文人民币大写_php技巧

本文实例为大家分享了php阿拉伯数字转中文人民币大写的实现代码,供大家参考,具体代码如下 代码1:php阿拉伯数字转中文人民币大写,有详细的注释 /** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以