将小写金额转换为大写金额

/*
运行环境:MS-SQL 2000
将小写金额转换为大写金额
整数部分最大值:9位数
小数部分最大值:2位
必须格式:整数.小数
状态:完成
Update date:2007-10-07
*/

/*
create procedure numTOchi
@num varchar(20)
as
*/
begin
DECLARE @NC VARCHAR(20)
SET @NC='2098765032.09'
declare @c1 varchar(30)
declare @c2 varchar(6)
declare @c3 varchar(20)
declare @zheng varchar (50)
declare @xiao varchar (50)
declare @num2chi varchar(50)
declare @chrNum varchar(50)
declare @i int
declare @zh int
declare @K int
declare @charindex varchar(2)

set @c1='千佰拾万千佰拾亿千佰拾万千佰拾元'
set @c2='角分'
set @c3='玖捌柒陆伍肆叁贰壹'
set @nc=LTRIM(Rtrim(@NC))
set @charindex=charindex('.',@nc)
if( @charindex!=0)
begin
-- set @zheng=convert(varchar(50),substring(@NC,1,(len(@nc)-3)))
-- set @xiao=convert(varchar(10),substring(@NC,(len(@zheng)+2),3))
set @zheng=substring(@nc,1,@charindex-1)
set @xiao=substring(@nc,@charindex+1,2)
end
else
begin
set @zheng= @nc-- substring(@nc,1,@charindex-1)
set @xiao=0
end

PRINT 'input money '+@NC
print '@zheng shu='+@zheng
print '@xiao shu='+@xiao
if(@zheng=0) and (@xiao=0)
begin
set @num2chi='零元整'
print @num2chi
end
else
begin
set @num2chi=''
if(@xiao!=0)
begin
--set @i=convert(int,len(@xiao))
set @i=len(@xiao)
while (0 begin
set @chrNum=convert(int,substring(@xiao,@i,1))
if (@chrNum!=0)
begin
set @num2chi=substring(@c2,@i,1)+@num2chi
set @num2chi=substring(@c3,(len(@c3)-@chrnum+1),1)+@num2chi
end
set @i=@i-1
end
end
set @K=0
if (@zheng!=0) --tranfesion zheng shu转换整数部分
begin
--set @i=convert(int,len(@zheng))
set @i=len(@zheng)
set @num2chi='元'+@num2chi
while(0 begin
begin
if((len(@zheng)-@i)=4)
set @num2chi='万'+@num2chi
else
begin
if(len(@zheng)-@i)=8
set @num2chi='亿'+@num2chi
end
end
-- begin
--- if (len(@zheng)-@zh)=12
--- set @num2chi='万'+@num2chi
--- end

set @chrnum=substring(@zheng,@i,1)
if (@chrnum!=0)
begin
if(@i=len(@zheng))
set @num2chi=substring(@c3,(len(@c3)-@chrnum+1),1)+@num2chi
else --- @i!=len(@zheng)
begin
if ((len(@zheng)-@i)!=4) and ((len(@zheng)-@i)!=8) and ((len(@zheng)-@i)!=12)and ((len(@zheng)-@i)!=16)
begin
if(right(@zheng,1)=0)
set @num2chi=substring(@c1,(len(@c1)-@k+1),1)+@num2chi --取千,佰 ('100000'本语句有效) 当个位数为零时有效
else --(right(@zheng,1)!=0)
set @num2chi=substring(@c1,(len(@c1)-@k),1)+@num2chi --取千,佰
end
set @num2chi=substring(@c3,(len(@c3)-@chrnum+1),1)+@num2chi --取大写数字
set @k=@k+1
end --- @i!=len(@zheng)
end -- (@chrnum!=0)
else -- chrnum=0
begin
if (substring(@num2chi,1,1)<>'元') and (substring(@num2chi,1,1)<>'万') and (substring(@num2chi,1,1)<>'亿')
begin
if(substring(@num2chi,1,1)<>'零')
set @num2chi='零'+@num2chi
end
set @k=@k+1
end -- else (@chrnum=0)
set @i=@i-1
end --- end if (@zheng!=0)
if( right(ltrim(@num2chi),1)<>'分')
begin
set @num2chi=@num2chi+'整'
end
end --?
end --?
print

--exec numTOchi 520001205.23

/*
运行结果如下: 在MS-SQL里怎样写1+2+3+....+50的循环语句
input money 1234567890.29
@zheng shu=1234567890
@xiao shu=29
@num2chi=壹拾贰亿叁千肆佰伍拾陆万柒千捌佰玖拾元贰角玖分
*/


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/729024/viewspace-564834/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/729024/viewspace-564834/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值