`
ddandyy
  • 浏览: 215018 次
  • 性别: Icon_minigender_1
  • 来自: 目前上海
社区版块
存档分类
最新评论

数字金额大小写转换之存储过程

阅读更多
来自:http://www.knowsky.com/344062.html

CREATE    Procedure MoneytoChinese22   --阿拉伯数字金额转换为中文大写
@ChangeMoney Money ,@ReturnDaXie varchar(50) output
as
Set Nocount ON
Declare @String1 char(20)
Declare @String2 char(30)
Declare @String4 Varchar(100)
Declare @String3 Varchar(100) --从原A值中取出的值
Declare @i bigint --循环变量
Declare @J bigint --A的值乘以100的字符串长度
Declare @Ch1 Varchar(100) --数字的汉语读法
Declare @Ch2 Varchar(100) --数字位的汉字读法
Declare @Zero bigint --用来计算连续有几个零
Declare @ReturnValue VarChar(100)

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

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

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

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 bigint) + 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 的值。


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 @ReturnDaXie=@ReturnValue

GO
分享到:
评论

相关推荐

    大小写金额转换

    在IT领域,尤其是在编程与财务应用的交叉领域中,“大小写金额转换”是一个常见的需求,尤其是在处理财务报表、发票或银行交易时。该功能的主要目的是将数字表示的金额转换为中文大写形式,以符合中国会计和金融领域...

    PowerBuilder人民币大小写转换

    在PowerBuilder开发中,进行人民币金额的大小写转换是一种常见的需求。这种转换主要用于财务、会计等系统的输出显示,确保数据格式符合规范且易于理解。下面将详细介绍如何在PowerBuilder中实现这一功能。 #### 一...

    金额大小写转换程序

    许多票据都是使用大写数字填写的,这里在实现金额大小写转换时,首先定义一个大写金额的数组,然后通过string类的Substring方法截取小写金额的每一位数字,在大写金额的数组中查找与之对应的大写金额,并存储在一个...

    Delphi金额大小写转换

    "Delphi金额大小写转换"是一个针对这一需求的源码解决方案,它使得在Delphi编程环境中实现这个功能变得简单便捷。 Delphi是Borland公司推出的一种基于Object Pascal语言的集成开发环境(IDE),它以其高效的编译器...

    JS转换金额大小写,适合用于工资系统,JS文件,可以学习一下,个人整合的

    总之,掌握JavaScript的金额大小写转换是前端开发人员必备的技能之一,特别是在涉及财务信息的项目中。通过理解上述的转换逻辑和规则,你不仅可以理解`金额大小写转换.js`文件的工作原理,还能在自己的项目中灵活...

    C#商品金额大小写转换

    在C#编程中,将商品金额的阿拉伯数字转换为汉字大写形式,是...了解以上知识点后,你可以编写一个C#函数,实现将输入的阿拉伯数字金额转换为汉字大写。记得在实现过程中充分考虑各种情况,以保证转换的准确性和可靠性。

    c#经典金额大小写转换

    ### C# 实现经典金额大小写转换 #### 概述 在金融系统、会计软件以及银行应用程序中,经常需要将阿拉伯数字表示的金额转换成汉字大写形式,以确保正式文档(例如支票、发票等)中的金额不易被篡改。C# 提供了丰富...

    数字大小写转换(转换为汉字大写)

    首先,我们来理解标题“数字大小写转换(转换为汉字大写)”所指的知识点。 在会计、财务和其他需要精确表示金额的领域,数字通常会用汉字大写表示,以避免混淆和提高准确性。例如,数字123456会表示为“壹拾贰万叁...

    java 金额大小写转换器

    在Java编程中,创建一个金额大小写转换器是一项常见的任务,尤其在开发财务软件或银行系统时。这个作业要求我们使用AWT(Abstract Window Toolkit)库来构建用户界面,并实现金额数字与大写汉字之间的相互转换功能。...

    Oracle中金额大小写转换

    总的来说,Oracle中进行金额大小写的转换涉及到对数字字符串的处理、自定义函数的编写以及对汉字数字的映射理解。虽然Oracle本身不直接提供这样的功能,但我们可以通过PL/SQL编程来实现。希望这个示例能帮助你理解并...

    大小写金额转换器

    "大小写金额转换器"是一个利用Delphi编写的实用小程序,主要功能是将阿拉伯数字格式的金额转换为汉字大写,这在财务、会计等领域中非常常见,因为汉字大写金额可以有效防止篡改,确保财务数据的准确性。 首先,我们...

    C#实例:人民币大小写转换程序

    在C#编程环境中,开发一个人民币大小写转换程序是一项实用的任务,这主要涉及到字符串处理、数字格式化以及中文字符的拼接。以下是一些相关的知识点: 1. **字符串操作**: - `ToString()` 方法:将数值转换为字符...

    C# 人民币大小写转换

    针对“C# 人民币大小写转换”这一主题,我们需要探讨如何利用C#编程语言处理人民币金额的格式化,特别是将其从阿拉伯数字形式转换为中文大写,这在财务单据中是必不可少的,因为中文大写可以避免因数字混淆导致的...

    人名币大小写转换js代码

    "人名币大小写转换js代码"这个主题,核心就是利用JavaScript编写函数,将输入的数字(通常是小写)转换为对应的中文大写人民币格式。这涉及到数字的处理、字符串的拼接以及中文字符的使用。 在实现这个功能时,首先...

    BAT批处理脚本-格式转换-人民币金额小写转大写.cmd.zip

    5. **字符映射**:人民币金额的大小写转换涉及特定的字符映射,例如数字0-9和小数点"."对应的大写汉字。脚本需要定义这种映射关系,并据此转换字符串。 6. **错误处理**:为了保证脚本的健壮性,需要添加错误处理...

    10行代码搞定金额大小写转换

    根据给定的信息,本文将详细解析“10行代码搞定金额大小写转换”这一功能的实现原理、核心逻辑以及代码解读等内容。 ### 核心功能介绍 本代码的主要功能是将一个数字(金额)转换为对应的中文大写形式,比如将`...

    小写金额转换为大写金额程序(VB6.0代码编写)

    4. **汉字数字映射**:为了实现转换,开发者需要创建一个映射表或数组,存储0到9的阿拉伯数字与相应的中文大写数字的对应关系。 5. **浮点数处理**:如果金额包含小数,程序需要处理小数点后的部分,转换为“角”和...

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

    在MySQL数据库中,有时我们需要将数字金额转换成人民币的大写形式,这在财务报表或会计系统中非常常见。为了实现这一需求,我们可以自定义一个函数或者利用现有的字符串处理函数。以下是一个关于如何在MySQL中实现这...

    大小写转换

    在IT行业中,大小写转换是一项基础且实用的操作,尤其在编程、数据处理和文本格式规范等方面经常被用到。标题“大小写转换”提示我们,这里主要涉及的是字符的大小写形式之间的转换技术。描述中提到“直接输入阿拉伯...

    C#人民币大小写金额转换

    本文档详细介绍了一个基于C#实现的人民币金额大小写转换工具类的实现原理、代码细节以及应用场景。 #### 二、核心功能与技术要点 ##### 2.1 核心功能 本工具类主要实现了以下三个核心功能: 1. **整数部分转大写**...

Global site tag (gtag.js) - Google Analytics