--先在sqlserver中执行下面的函数

-- =============================================
-- Description:    <转换小写金额为大写金额>
-- =============================================
CREATE  FUNCTION [dbo].[CapitalRMB](@ChangeMoney numeric(15,2))
    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 bigint)
    if (SubString(@String4, 1, 1) = '-')
        select @String4 = Substring(@String4, 2, Len(@String4)-1)
    select @J=len(@String4)
    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 的值。
            Select @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, '零仟', '零')
    If CharIndex('元元',@ReturnValue) <> 0
        Select @ReturnValue = Replace(@ReturnValue, '元元', '元')
    while (SubString(@ReturnValue, 1, 1) = '零')
    begin
      select @ReturnValue = SubString(@ReturnValue, 2, Len(@ReturnValue)-1)
    end
    if @ChangeMoney < 0
        select @ReturnValue = '负' + @ReturnValue
    return @ReturnValue
END

--执行完我们看一下效果

转换小写金额为大写金额相关推荐

  1. 【C语言】小写数字金额转换成中文大写金额

    1. 更新说明 添加与 "零圆整" 等价的预先判断 (0 / 0. / 0.0 / 0.00 / . / .0 / .00) 修复了因使用函数 strdup 导致的内存泄漏 除去输 ...

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

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

  3. win7计算机名改成大写,Win7系统下excel数字小写金额怎么转换成汉字大写金额

    很多 第一种:设置单元格格式 在单元格中输入想要变成大写的数字之后,按Ctrl+1调出单元格格式设置对话框,在分类选择特殊类型为中文大写数字,最后再单击确定按钮即可看到自己原本的小写数字变成大写了: ...

  4. 将阿拉伯数字转换成中文大写金额的形式

    问题:编写控制台程序,用户输入阿拉伯数字的金额,系统自动转换成中文大写金额的形式输出. 例如:输入458796: 转换为:肆拾伍万捌仟柒佰玖拾陆. 问题分析:既然是数字大小写转换,那么我们这样考虑问题 ...

  5. c#金额转换成中文大写金额

    c#金额转换成中文大写金额 原文:c#金额转换成中文大写金额 2018-08-24 转别人 c#金额转换成中文大写金额 /// <summary>/// 金额转换成中文大写金额/// &l ...

  6. C语言判断字符是否为数字 如果是输出yes 如果为字母 则大写转换小写 小写转换大写

    #include <stdio.h>int main(void) {char ch;printf("input a char:");ch=getchar();//判断c ...

  7. 金额转换成中文大写金额

    留个纪念.这个类主要用于将数字金额转换成中文大写金额,提供了三个方法: toDX(double val) toDX(String val) toDX(int val) 使用方法 AmtInWords. ...

  8. 人民币小写转大写金额(可达千百万亿)

    在很多企业级的软件开发中,很多时候会涉及到人民币的小写转大写.原来有个VB6的程序,现转为.Net,实现相当简单,同时支持达千百万亿的金额转换.现贴出代码以供参考:(本思路有别于网上很多的代码,通读易 ...

  9. java金额小写转大写金额_Java金额大小写的转换方法

    本文实例为大家分享了Java金额大小写转换的具体代码,供大家参考,具体内容如下 /** * @ClassName: NumberConvert * @Description: TODO * @date ...

  10. java实现数字金额转换成汉字大写金额

    我们经常在做项目的财务报表,需要打印发票等情况时需要用到小写的财务金额要转换成汉字的大写金额,下面就是实现该功能的代码 import java.lang.Math; /** *通用型金钱转换类 * * ...

最新文章

  1. (面试)java基础-String一些特性
  2. 记录一些比较有趣的网站,来给自己的网站设计积累思想
  3. Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
  4. xml学习4-dtd
  5. nslookup 使用说明
  6. 数据结构与算法之七归并排序
  7. 2008R2更新链接服务器(SQL2000)慢的问题
  8. 工具的使用——电脑的认识与使用
  9. HTC vive手柄无法识别
  10. 宏基笔记本升级bios(2012-12-28-bd 写的日志迁移
  11. MySql 内连接与外连接 作用和 区别
  12. 【编译原理】自下而上语法分析(C/C++源码+实验报告)
  13. 微信语音技术原理_语音控制智能家居系统的实现过程和技术详解
  14. IOS 从项目学习Swift 开发(一)
  15. ArcEngine符号化——文本符号
  16. 使用OpenCV合成训练图片,同时生成labelme兼容格式的标注文件
  17. C++程序实现自我复制
  18. RK3288功能介绍
  19. 正则 显示0-100的数字(可以是小数也可以是整数,不能是01,02可以是0.1)
  20. 删除MySQL表的SQL语句-DROP-TABLE-简介

热门文章

  1. 第一章 计算机网络概述(计算机网络韩立刚)
  2. oracle库怎么样查询gp数据库,GP数据库分布键查询
  3. 做电脑技术员几年的心得
  4. python EXCEL表格数据对比
  5. SEO 移动搜索优化
  6. word2013论文公式居中并且自动编号
  7. EXCEL表格所有的快捷键
  8. 基于 AngularJS 的 UI 框架 Suave UI
  9. 国家科技管理信息系统构建及其对科技情报工作的影响
  10. Python快速入门教材推荐!