将数字转换为汉语简体中文

DECLARE @Str nVARCHAR(100),
        @Strs nVARCHAR(100),
        @Strss nVARCHAR(100),
        @I int,
        @j INT,
        @leng INT,
        @z int,
        @xiaoshu varchar(50)
/*Define @str To Save Chinese*/
SELECT @Str=N'十百千万十百千亿'
SELECT @Strs=N'零一二三四五六七八九十'
SET @Strss=''
SET @i=300202051
set @xiaoshu='300202051.239089'
set @z=charindex('.',@xiaoshu)
if(charindex('.',convert(nvarchar(100),@xiaoshu)))>0
   set @xiaoshu=substring(@xiaoshu,@z+1,len(@xiaoshu)-@z)
WHILE(LEN(@i)>1)
BEGIN
 SET @leng=LEN(@I)
 SET @j=@i/POWER(10,LEN(@i)-1)
 SET @i=@i%POWER(10,LEN(@i)-1)
 IF(@leng-len(@I)>1 )
 BEGIN
        if(@leng>4 and len(@i)<5 and @leng<10)
        begin
  SET @Strss=@Strss+SUBSTRING(@Strs,@j+1,1)+SUBSTRING(@Str,@leng-1,1)+N'万'
  SET @Strss=@Strss+N'零'
  end
  else
  begin
  SET @Strss=@Strss+SUBSTRING(@Strs,@j+1,1)+SUBSTRING(@Str,@leng-1,1)
  SET @Strss=@Strss+N'零'
  end
 END
 ELSE
    SET @Strss=@Strss+SUBSTRING(@Strs,@j+1,1)+SUBSTRING(@Str,LEN(@i),1)
END
IF(@I<>0)
  SET @Strss=@Strss+SUBSTRING(@Strs,cast(@i as int)+1,1)
if(len(@xiaoshu)>0)
begin
     set @Strss=@Strss+N'点'
     set @i=convert(int,@xiaoshu)
     if(substring(@xiaoshu,1,1)='0')
       set @Strss=@Strss+N'零'
     While(len(@i)<>1)
     begin
       SET @leng=LEN(@I)
       SET @j=@i/POWER(10,LEN(@i)-1)
    SET @i=@i%POWER(10,LEN(@i)-1)
    IF(@leng-len(@I)>1)
    BEGIN
     SET @Strss=@Strss+SUBSTRING(@Strs,@j+1,1)
  SET @Strss=@Strss+N'零'
    END
    ELSE
    begin
    SET @Strss=@Strss+SUBSTRING(@Strs,@j+1,1)
    end
       end
end
IF(@I<>0 and @xiaoshu<>'')
  SET @Strss=@Strss+SUBSTRING(@Strs,cast(@i as int)+1,1)
print @Strss
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值