注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

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

2011-06-04 20:34:34|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

  评论这张
 
阅读(145)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017