`

把数字转换成大写(人民币)

    博客分类:
  • SQL
阅读更多
set ANSI_NULLS ON 
set QUOTED_IDENTIFIER ON 
go 

CREATE PROCEDURE [dbo].[xxTodx] 
( 
@n_LowerMoney numeric(15,2), 
@v_TransType int, 
@RET VARCHAR(200) output 
) 
AS 
   
Declare @v_LowerStr VARCHAR(200) -- 小写金额 
Declare @v_UpperPart VARCHAR(200) 
Declare @v_UpperStr VARCHAR(200) -- 大写金额 
Declare @i_I int 

set nocount on 

select @v_LowerStr = LTRIM(RTRIM(STR(@n_LowerMoney,20,2))) --四舍五入为指定的精度并删除数据左右空格 

select @i_I = 1 
select @v_UpperStr = '' 

while ( @i_I <= len(@v_LowerStr)) 
begin 
      select @v_UpperPart = case substring(@v_LowerStr,len(@v_LowerStr) - @i_I + 1,1) 
                            WHEN  '.' THEN  '元' 
                            WHEN  '0' THEN  '零' 
                            WHEN  '1' THEN  '壹' 
                            WHEN  '2' THEN  '贰' 
                            WHEN  '3' THEN  '叁' 
                            WHEN  '4' THEN  '肆' 
                            WHEN  '5' THEN  '伍' 
                            WHEN  '6' THEN  '陆' 
                            WHEN  '7' THEN  '柒' 
                            WHEN  '8' THEN  '捌' 
                            WHEN  '9' THEN  '玖' 
                            END 
                          + 
                            case @i_I 
                            WHEN  1  THEN  '分' 
                            WHEN  2  THEN  '角' 
                            WHEN  3  THEN  '' 
                            WHEN  4  THEN  '' 
                            WHEN  5  THEN  '拾' 
                            WHEN  6  THEN  '佰' 
                            WHEN  7  THEN  '仟' 
                            WHEN  8  THEN  '万' 
                            WHEN  9  THEN  '拾' 
                            WHEN  10  THEN  '佰' 
                            WHEN  11  THEN  '仟' 
                            WHEN  12  THEN  '亿' 
                            WHEN  13  THEN  '拾' 
                            WHEN  14  THEN  '佰' 
                            WHEN  15  THEN  '仟' 
                            WHEN  16  THEN  '万' 
                            ELSE '' 
                            END 
select @v_UpperStr = @v_UpperPart + @v_UpperStr 
select @i_I = @i_I + 1 
end 

--------print  '/ _UpperStr ='+@v_UpperStr +'//' 

if ( @v_TransType=0 ) 
begin 
select @v_UpperStr = REPLACE(@v_UpperStr,'零拾','零') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零佰','零') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零仟','零') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零零零','零') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零零','零') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零角零分','整') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零分','整') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零角','零') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零亿零万零元','亿元') 
select @v_UpperStr = REPLACE(@v_UpperStr,'亿零万零元','亿元') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零亿零万','亿') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零万零元','万元') 
select @v_UpperStr = REPLACE(@v_UpperStr,'万零元','万元') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零亿','亿') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零万','万') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零元','元') 
select @v_UpperStr = REPLACE(@v_UpperStr,'零零','零') 
end 

-- 对壹元以下的金额的处理 
if ( substring(@v_UpperStr,1,1)='元' ) 
begin 
     select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1)) 
end 

if (substring(@v_UpperStr,1,1)= '零') 
begin 
     select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1)) 
end 

if (substring(@v_UpperStr,1,1)='角') 
begin 
     select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1)) 
end 

if ( substring(@v_UpperStr,1,1)='分') 
begin 
     select @v_UpperStr = substring(@v_UpperStr,2,(len(@v_UpperStr) - 1)) 
end 

if (substring(@v_UpperStr,1,1)='整') 
begin 
     select @v_UpperStr = '零元整' 
end 

select @ret=@v_UpperStr 
分享到:
评论

相关推荐

    人民币数字转换成汉字大写

    人民币数字转换成汉字大写 android Java 运行效率

    Java人民币金额数字转换成大写

    Java 人民币金额数字转换成大写 Java 人民币金额数字转换成大写是 Java 面试中最常见的问题之一。本文将详细介绍如何使用 Java 实现人民币金额数字转换成大写的解决方案。 Java 中的 NumberFormat 类 在 Java 中...

    数字转化人民币大写

    在excel中输入数字转换成人民币大写,在excel中输入数字转换成人民币大写,在excel中输入数字转换成人民币大写

    数字转换成人民币大写

    数字转换成人民币大写

    JS将数字转换为大写汉字人民币

    JS将数字转换为大写汉字人民币

    C# 将数字转换成大写人民币 调用微软语音引擎SAPI.SpVoice

    在IT领域,尤其是在编程实践中,将数字转换成大写人民币是一种常见的需求,特别是在财务软件或者银行系统的开发中。本文将详细讲解如何利用C#语言,结合微软的语音引擎SAPI.SpVoice来实现这一功能,并讨论如何调用...

    数字转成人民币大写代码

    这段代码是用于将数字转换为中文大写的人民币表示方式,主要应用于财务软件或者与货币相关的程序中,方便在中文环境中准确地表示金额。这个函数名为`GetChinaNum`,接收4个参数:`otherNum`、`isRMB`、`numOption`和...

    数字金钱转换成中文大写

    2. 对应转换:将每个数字转换为相应的中文大写,如1对应壹,2对应贰,以此类推。同时,根据位数添加相应的单位,例如12后加“万”。 3. 填充零:如果某一位是0,则写为“零”。例如,3456中“5”的前一位是0,所以...

    罗马数字直接转换成中文大写人民币数字

    本主题聚焦于一个特定的转换任务:将罗马数字转换为中文大写人民币数字。这个任务常见于财务软件或者自动化的会计系统中,因为在中国,大额金额通常使用中文大写来表示,以避免因数字笔画相似而引起的混淆和欺诈。 ...

    数字转换成金额大写

    在IT行业中,尤其是在财务软件开发或者自动化报表系统中,经常需要将数字转换成中文大写的金额形式,以便符合中国的财务规范。"数字转换成金额大写"是一个常见的需求,特别是在Delphi这样的编程环境中。Delphi是一款...

    java中把数字转化为人民币大写形式

    总的来说,将数字转化为人民币大写形式是Java编程中的一个实用技巧,涉及到数字与字符串的转换、位运算以及特殊规则的理解和应用。通过理解和实践这个过程,可以增强对Java字符串操作和逻辑处理的理解。

    小写人民币转换成大写人民币

    ### 小写人民币转换成大写人民币 在财务、会计以及正式文件中,为了防止篡改,经常需要将小写的阿拉伯数字金额转换为大写形式。这种转换在银行支票填写、合同金额书写等方面尤为常见。本文将详细介绍如何实现从小写...

    mysql函数,将数字金额转成人民币大写

    首先,你需要定义一个存储过程,包含将数字转换为汉字的逻辑。这个过程可能包括一系列的条件判断和字符串拼接操作,例如: ```sql DELIMITER // CREATE FUNCTION num_to_rmb(num DECIMAL(15,2)) RETURNS CHAR...

    javascript 数字转换大写人民币

    应用javascript转换数字为大写人民币

    python实现人民币大写转换

    本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # -*- coding:utf-8 -*- # ********* 转换方法介绍 ********* # 将需要转换的数字从右向左,每4位分成一个...

    java实现数字转换人民币中文大写工具

    Java 实现数字转换人民币中文大写工具 Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换...

    转变数字为大写人民币格式

    在IT行业中,尤其是在编程领域,有时我们需要将数字转化为特定的文本格式,如将数字转换成大写的人民币格式。这在财务软件、报表系统或者任何涉及金融数据展示的应用中非常常见。"转变数字为大写人民币格式"这个话题...

Global site tag (gtag.js) - Google Analytics