sql2005中自带的人民币转为大写函数?求大神帮助

萝C 2024-11-16 04:48:56
最佳回答
说明: 1.本函数范围从 毫 ~ 兆 2.有四种精度(元,角 ,分,厘 ,毫) 3.有三种进位规则(四舍五入,接舍去,非0就入) 参数说明:dbo.moneytocapital( 数值 , 进位 , 精度) 进位(0 四舍五入, 1 直接舍去,2 非0就入) 精确度 (0 元,1 角 ,2 分,3 厘 ,4 毫) -------------------------------------------------------------------------------------------------------- --测试数据: declare @intnum decimal(38,4) set @intnum = 1123456780.2154 --set @intnum = 1001 --set @intnum = 100100 --set @intnum = 1005001 --set @intnum = 100.11 --set @intnum = 100.00 --set @intnum = 100.01 set @intnum = 99999999999999.9999 -- 最大 <1百兆(精确到毫) --set @intnum = 10025.1234 --set @intnum = 12345.6789 select dbo.moneytocapital(@intnum,0,4) -------------------------------------------------------------------------------------------------------- */ create function moneytocapital ( @mnynumber decimal(38,4), @int**round int = 0, -- 进位 (0 四舍五入, 1 直接舍去,2 非0就入) @intprec**ion int = 2 -- 精确度: 0 元,1 角 ,2 分,3 厘 ,4 毫 ) returns nvarchar(50) begin declare @strreturn nvarchar(50) declare @strmoney varchar(50) declare @intlen int declare @strc1 char(1) declare @strc2 char(1) declare @strc3 char(1) declare @intj int declare @necmoney decimal(38,4) declare @strmoneyunit nvarchar(50) declare @strnumbercapital nvarchar(50) set @strmoneyunit = '毫厘分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟京拾佰仟' set @strnumbercapital = '零壹贰叁肆伍陆柒捌玖' --0 的情况 if @mnynumber = 0 begin set @strreturn = '零元整' return @strreturn end --超出范围 的情况 if @mnynumber < 0 or @mnynumber > 99999999999999.9999 begin return cast(@mnynumber as varchar(50)) end ------进位 超出范围 if @int**round<0 or @int**round>2 begin set @int**round = 0 end ------精确度 超出范围 if @intprec**ion<0 or @intprec**ion>4 begin set @intprec**ion = 2 end if @int**round =1 begin--直接舍去 set @mnynumber = round(@mnynumber,2,1) end else if @int**round = 2 begin--非0就入 set @mnynumber = round(@mnynumber,2) end else begin--四舍五入 set @mnynumber = round(@mnynumber,@intprec**ion) end set @necmoney = @mnynumber * power(10,@intprec**ion) --精确度 @intprec**ion set @strmoney = cast(cast(@necmoney as bigint) as varchar(50)) set @intlen = len(@strmoney) --长度 set @strmoney = reverse(@strmoney) --逆转 set @strreturn='' set @intj = 1 -- @intprec**ion 精确度: 0 元,1 角 ,2 分,3 厘 ,4 毫( 1 开始对应 毫) while @intj <= @intlen begin set @strc1 = substring(@strmoney,@intj-1,1) set @strc2 = substring(@strmoney,@intj,1) set @strc3 = substring(@strmoney,@intj+1,1) /* if @strc2='0' begin--当前数是 0 if @strc1<>'0' and @intj<>1 begin --前一个不是0则加 '零' set @strreturn = dbo.numbertocapital(@strc2) + @strreturn end end else begin set @strreturn = dbo.numbertocapital(@strc2) + dbo.getmoneyunit(@intj,@strc1,@strc2) + @strreturn end */ set @strreturn = substring(@strnumbercapital , cast(@strc2 as int)+1 , 1) +substring(@strmoneyunit , @intj+4-@intprec**ion , 1) + @strreturn set @intj = @intj + 1 end /* set @strreturn = cast(@strreturn as varchar(100)) set @strreturn = replace(@strreturn,'零元','元') set @strreturn = replace(@strreturn,'零拾','拾') set @strreturn = replace(@strreturn,'零佰','佰') set @strreturn = replace(@strreturn,'零仟','仟') set @strreturn = replace(@strreturn,'零万','万') set @strreturn = replace(@strreturn,'零亿','亿') */ return @strreturn end --string1 = "零壹贰叁肆伍陆柒捌玖" --string2 = "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫" 20210311
汇率兑换计算器

类似问答
  • 急求人民币大小写转换代码
    • 2024-11-16 19:19:35
    • 提问者: 未知
    '将**伯数字表示的金额转换为中文大写 function strucasemoney(byval albmoney) dim strdecimal,i,j,strtemp albmoney=trim(albmoney&"") i=instr(albmoney,".") if i=0 then i=len(albmoney)+1 else strdecimal=mid(albmoney,i+1) e...
  • 人民币兑换马来西亚币汇率求大神帮助
    • 2024-11-16 21:36:52
    • 提问者: 未知
    马来西亚币对人民币汇率 1人民币元=0.4631马来西亚元 1马来西亚元=2.1593人民币元 汇率数据由和讯外汇提供,更新时间:2010-11-08
  • 九九年人民币求大神帮助
    • 2024-11-16 00:47:33
    • 提问者: 未知
    只值22元,99年的不值钱,而且收**民币是号码只看连号哦;望采纳,谢谢
  • 10荷兰币等于多少人民币(现在)?求大神帮助
    • 2024-11-16 20:47:04
    • 提问者: 未知
    10荷兰币=42.15人民币!!!在2002年1月1日以后,欧元实行,荷兰币推出金融市场,荷兰改用欧元货币。要是只有10元的话就作为收藏品做个纪念吧。在1998年大概一荷兰盾可以兑换5元人民币,现在还能不能兑换,兑换多少就不清楚了,你去**银行问问吧
  • 新币等于多少美金求大神帮助
    • 2024-11-16 01:53:02
    • 提问者: 未知
    2009年04月23日12:12:58 交易币 交易币单位 基本币 中间价 卖出价 现汇买入价 现钞买入价 港币100 人民币 88.12 88.30 87.94 87.33 澳大利亚元 100 人民币 481.74 483.67 479.81 464.64 美元100 人民币 682.93 684.30 681.56 676.10 欧元100 人民币 887.95 891.50 884...
  • 一美元等于多少人民币?求大神帮助
    • 2024-11-16 22:30:45
    • 提问者: 未知
    1 美元(usd) = 6.8275 人民币(cny)采纳哦
  • 100台币等于多少人民币?汇率是多少?求大神帮助
    • 2024-11-16 16:41:45
    • 提问者: 未知
    台币的汇率大约是1 台币=0.230580人民币,那么100台币也就相当于人民币23块钱左右
  • 50eurocent是哪个**的硬币折合人民币是多少求大神帮助
    • 2024-11-16 13:44:14
    • 提问者: 未知
    你好,这是50欧分,大概相当于人民币5元。
  • 在**,有没有姓爨的人?求大神帮助
    • 2024-11-16 18:15:25
    • 提问者: 未知
    隋王朝派遣韦冲为南宁州总管,由于隋朝派到南宁州官吏的苛暴,引起了当地各族人民的不满,据《隋书·韦冲传》记载,“韦冲起...唐王朝将被隋朝俘获押送长安的爨玩之子爨宏达释...
  • 什么是捉腰带线啊?求大神帮助!
    • 2024-11-16 11:36:15
    • 提问者: 未知
    捉腰带线是由单独一根蜡烛线构成的,既可能具有看涨的意义,也可能具有看跌的意义。 捉腰带形态的日文名称来自相扑运动的一个术语:羚羊挂角。 这个术语的意思是“抓着对手的腰带,将他推出圈外”。 如果市场收市于黑色的看跌捉腰带线之上, 则意味着上升趋势已经恢复。 如果市场收市于白色的看涨捉腰带线之下, 则意味着市场的抛售压力重新积聚起来了。在股市中像这种k线形态还有很多种,例如锤子线,吞没形态,刺透形态,...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。