数字金额转换成中文金额(数据库实现)

原创 2006年05月26日 13:38:00

利用函数实现,以Sql server2000为基础实现。 利用函数实现,以Sql server2000为基础实现。

Create     FUNCTION UF_FormatDecimalToChinese (@ConvertValue numeric(15,2)) 
RETURNS VARCHAR(200) AS

BEGIN
Declare @LowString  VARCHAR(200) 
Declare @UpString   VARCHAR(200)
Declare @UpPart     VARCHAR(200)
Declare @i          int

Set @LowString  = LTRIM(RTRIM(ROUND(@ConvertValue,2)))
Set @i = 1
Set @UpString   = ''

While ( @i <= len(@LowString))
Begin
      Select @UpPart = case substring(@LowString,len(@LowString) - @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
                            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
    Set @UpString = @UpPart + @UpString
    Set @i = @i + 1
End


Set @UpString = REPLACE(@UpString,'零拾','零')
Set @UpString = REPLACE(@UpString,'零佰','零')
Set @UpString = REPLACE(@UpString,'零仟','零')
Set @UpString = REPLACE(@UpString,'零零零','零')
Set @UpString = REPLACE(@UpString,'零零','零')
Set @UpString = REPLACE(@UpString,'零角零分','整')
Set @UpString = REPLACE(@UpString,'零分','整')
Set @UpString = REPLACE(@UpString,'零角','零')

Set @UpString = REPLACE(@UpString,'零亿零万零元','亿元')
Set @UpString = REPLACE(@UpString,'亿零万零元','亿元')
Set @UpString = REPLACE(@UpString,'零亿零万','亿')
Set @UpString = REPLACE(@UpString,'零万零元','万元')
Set @UpString = REPLACE(@UpString,'万零元','万元')
Set @UpString = REPLACE(@UpString,'零亿','亿')
Set @UpString = REPLACE(@UpString,'零万','万')
Set @UpString = REPLACE(@UpString,'零元','元')
Set @UpString = REPLACE(@UpString,'零零','零')


If ( '元' = substring(@UpString,1,1))
    Set @UpString = substring(@UpString,2,(len(@UpString) - 1))

If ( '零' = substring(@UpString,1,1))
    Set @UpString = substring(@UpString,2,(len(@UpString) - 1))


If ( '角' = substring(@UpString,1,1))
    Set @UpString = substring(@UpString,2,(len(@UpString) - 1))

If ( '分' = substring(@UpString,1,1))
    Set @UpString = substring(@UpString,2,(len(@UpString) - 1))

If ( '整' = substring(@UpString,1,1))
    Set @UpString = '零元整'


Return  @UpString

END


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

金额从数字转换成中文汉字大写的实现

以下简单封装的实现方法,详细见注释class money2chinese { private $amount; // 金额 private $num2chinese; // 大写数字 ...

js 数字金额大小写转换成中文大写

function Arabia_to_Chinese(Num) { for(i=Num.length-1;i>=0;i--) { Num = Num.replace(",","")//替换to...

将数字转换成中文金额的大写形式

package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.anno...

黑马程序员——金额转换,阿拉伯数字转换成中文大写

package com.heima.problemA; import java.util.ArrayList; import java.util.List; /* * 思路: 待转换的整数分为...

转换成中文大写金额

java将金额数字转换成对应的汉字

将金额数字转换成对应的中文汉字

数字金额转换成汉字

import java.util.Arrays;public class Num {private String[] hanArr= {"零","壹","贰","叁","肆","伍"...

将大写金额(精确到圆)转换成数字

基本思路: 1、规范大写金额字符串 2、用正则匹配出每个段,包括亿段、万段、个段 3、遍历每个段的字符,用数字乘以单位并累加 4、用每个段的金额乘以每个段的单位并累加 目前这个算法只能匹配千...

金额转换,阿拉伯数字转换成中国传统形式

import java.util.Scanner;public class Test9 { /** * 9、金额转换,阿拉伯数字转换成中国传统形式。 * 例如:1010000...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)