打印本文 打印本文 关闭窗口 关闭窗口
献个丑,写了个小写转大写的sp ,0.1 版本继续测试中
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1837  更新时间:2009/4/22 23:09:37  文章录入:mintao  责任编辑:mintao
p; = ltrim(rtrim(@result)) 
end 

--去最后一个零 
if @result like '%零' 
begin 
  select @result   = substring( @result ,  1,datalength(@result)-2) 
  select @result   = ltrim(rtrim(@result)) 
end 
select @result    
end

 zhangyh123 回复于:2003-09-23 11:39:39 请大家帮助测试看看     并希望给更好的方案

 zhangyh123 回复于:2003-09-23 14:23:47 测试用例子 
  
sp_convertmoney 0.05   伍分
sp_convertmoney 0.45   肆角伍分
sp_convertmoney 1.45  壹元肆角伍分
sp_convertmoney 1.00   壹元整
sp_convertmoney 1.01  壹元零壹分
sp_convertmoney 10.01  壹拾元零壹分
sp_convertmoney 10.81 壹拾元捌角壹分
sp_convertmoney 190.81  壹佰玖拾元捌角壹分
sp_convertmoney 100    壹佰元整
sp_convertmoney 100.01   壹佰元零壹分
sp_convertmoney 1000.10  壹仟元壹角
sp_convertmoney 10000  壹万元整
sp_convertmoney 10000.02 壹万元零贰分
sp_convertmoney 1030000  壹佰零叁万元整
sp_convertmoney 1030000.99 壹佰零叁万元玖角玖分
sp_convertmoney 10000000.01 壹仟万元零壹分
sp_convertmoney 10000000 壹仟万元整
sp_convertmoney 100000000 壹亿元整
sp_convertmoney 100000100 壹亿零壹佰元整

负数没有考虑 


如果是0 ,自己可以加一句判断 ,怎么返回看自己要求
if @convmoney =0  
begin
  select '零元整'
  return 
end

 liugr3988 回复于:2003-09-23 16:13:04 很好,顶!

 Blackrose 回复于:2003-09-23 21:50:08 A.
1> sp_convertmoney  0.111
2> go
Msg 241, Level 16, State 2:
Server 'LOCAL', Procedure 'sp_convertmoney':
Scale error during implicit conversion of NUMERIC value '0.111' to a NUMERIC
field.

是不是考虑添加一点四舍五入(可以选择)的功能,或者一点容错...
B.
最大好像就是 
玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分

不错,算法没有仔细看,功能还是good!!!!

 zhangyh123 回复于:2003-09-24 09:17:41 [quote:96e79aae65="Blackrose"]A.
1> sp_convertmoney  0.111
2> go
Msg 241, Level 16, State 2:
Server 'LOCAL', Procedure 'sp_convertmoney':
Scale error during implicit conversion of NUMERIC value '0.111' to a NUMERIC
fie..........[/quote:96e79aae65]     

第一  输入必须自己格式化为 numeric(12,2)数据类型。这个是调用的时候出错,不是内部错误。  
第二 如果需要更大的可以将程序略改一点,增加一下位数,以及临时表的记录就可以了
我最多用到千万的说 

 jazy 回复于:2003-09-24 12:58:04 想法不错,支持一下!!

 chenfeng825 回复于:2003-09-24 13:03:57 呵呵。jazy好久没见来了。

 

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口