CREATE FUNCTION FAtoC
/*
金额阿拉伯数字转换为中文的自定义函数
*/
(
@ChangeMoney Money

)
RETURNS VarChar(100)
AS
BEGIN
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 的值。
set @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, '元元', '元')
     return(@ReturnValue)
END

转载于:https://www.cnblogs.com/shuxx/archive/2007/09/04/881666.html

将小写金额转换成大写金额[存储过程版]相关推荐

  1. 工具篇——MoneyFormatUtil(用于将人民币小写金额转换成大写金额)

    写代码的四点: 1.明确需求.要做什么? 2.分析思路.要怎么做?(1,2,3--) 3.确定步骤.每一个思路要用到哪些语句.方法和对象. 4.代码实现.用具体的语言代码将思路实现出来. 学习新技术的 ...

  2. PB中小写金额转换成大写金额(发票类型)

    PB中小写金额转换成大写金额 //================================================================= // 功能:小写金额转换成大写金额 ...

  3. Java工具包:小写金额转换成大写金额

    源代码如下 package com.jian.stringUtil;/*** 工具类:小写金额转换成大写金额* * @author jianxuanbing* */ @SuppressWarnings ...

  4. 小写金额转换成大写金额的函数

    编写一个收费软件时要用到一个小写金额转换成大写金额的函数,我曾在网上找到一个用Powerbuilder写的函数,长达四五十行之巨,后来我自己用DELPHI写了一个函数,寥寥几行代码就搞定: funct ...

  5. 使用javabean把小写金额转换成大写金额

    public static void main(String[] args) {moneyConversion mc=new moneyConversion();String money=" ...

  6. win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...

    有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...

  7. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...

    大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...

  8. 阿拉伯数字小写金额转换成中文大写金C额程序说明

    阿拉伯数字小写金额转换成中文大写金额C程序说明 1.问题的提出 寒假帮同学交缴话费时,不经意间看到收据上同时有小写金额和大写金额,想想各种各样的票据诸如缴费收据.银行业务回单.商场销售凭证.专用发票等 ...

  9. [python]数字金额转换成大写金额

    最近开始负责单位的测绘合同草拟和签订,所以打算用python-docx来制作模板,减少自己的工作量.因为合同中有金额的大写内容,所以做了一个转换的函数. 因为行业内几乎签不了上亿的合同,所以函数只能转 ...

最新文章

  1. android保持服务不休眠(持续运行)以及唤醒屏幕的方法
  2. 精选SpringBoot+Vue开发的开源系统(前端+后端+小程序)
  3. 如何访问Linux服务器中RabbitMQ管理页面
  4. auxprop mysql_Postfix 反垃圾过滤
  5. Linux系统ssh无法启动,Linux系统上SSH无法启动
  6. fabric.js 不同类型 不同控件_耐温灌封胶都哪几个类型?不同类型的灌封胶有哪些不同之处?...
  7. 洛谷 P2749 [USACO5.1]【夜空繁星Starry Night】
  8. sh脚本和bash脚本_我是如何开始使用bash脚本的
  9. Vue实现一个按钮切换显示不同的div内容
  10. 教你用 Android 做二次开发,识别率达到科大讯飞语音输入水平 | 原力计划
  11. 从git commit号码 revert_git revert amp; git rebase amp; commit 分支图
  12. python怎么读取excel-python怎么从excel中读取数据?
  13. WebView的爬坑之路
  14. 借助易宝实现Java版网上在线支付
  15. java 调查问卷_java学习调查问卷
  16. 分享几个音乐下载神器,一键下载全网音乐
  17. 清理Windows Temp目录下的cab*文件
  18. win7取消计算机开机密码怎么设置,【win7】:当你想关闭开机密码的时候该怎么设置呢?...
  19. 关于高性能的MIMO技术的实现方法介绍
  20. 基于pycharm的opencv (python)-----信用卡实战

热门文章

  1. 一定要陪一个男人创业,你会和他一样快速成长,并内心变得强大
  2. 你给客户报完价,客户就没消息了,什么原因呢?
  3. 如何快速看透一个人?
  4. 什么样的人才容易被骗?
  5. 家里的穿墙的网线不好用了,想换一根,换不了,不走明线有什么好办法?
  6. 经典同步问题三——读者写者问题
  7. Qt4_Shreadsheet电子表应用
  8. 删除排除链表中的重复元素
  9. uni-app中的数据绑定
  10. ssis修改数据库数据_SSIS平衡数据分配器概述