货币转大写两种方法

简介: 第一种        public static string GetMoney(double dd)        {            string s = dd.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.

第一种

         public   static   string  GetMoney( double  dd)
        {
            
string  s  =  dd.ToString( " #L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A " );
            
string  d  =  Regex.Replace(s,  @" ((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$)))) " " ${b}${z} " );
            
string  value  =  Regex.Replace(d,  " . " delegate (Match m)
            { 
return   " 负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟万亿兆京垓秭穰 " [m.Value[ 0 -   ' - ' ].ToString(); });
            
return  value;
        }

 第二种

static   public   string  convertMoneytoRMB( double  decMoney)
        {
            
string  strMoney, strOneNum, strTemp, strConverted;
            
int  i, iLen;

            
// 设初值
            strConverted  =   "" ;
            strMoney 
=  decMoney.ToString();
            iLen 
=  strMoney.Length;

            
// 先取小数位
             if  (strMoney.IndexOf( " . " >   0 )
            {
                strTemp 
=  strMoney.Substring(strMoney.IndexOf( " . " +   1 , strMoney.Length  -  strMoney.IndexOf( " . " -   1 );
                
if  (strTemp.Length  >   2 )
                {
                    Console.WriteLine(
" 错误:无法计算超过2位的小数 " );
                    
return  strConverted;
                }
                
else   if  (strTemp  ==   " 0 "   ||  strTemp  ==   " 00 "   ||  strTemp  ==   "" )
                    strTemp 
=   "" ;
                
else
                {
                    
if  (strTemp.Length  ==   1   &&  strTemp  !=   " 0 " )
                    {
                        strConverted 
=  converNumtoCapital(strTemp)  +   " "   +  strConverted;
                    }
                    
else
                    {
                        strOneNum 
=  strTemp.Substring( 0 1 );
                        strConverted 
=  converNumtoCapital(strOneNum)  +  (strOneNum  !=   " 0 "   ?   " "  :  "" +  strConverted;
                        strOneNum 
=  strTemp.Substring( 1 1 );
                        strConverted 
=  strConverted  +  (strOneNum  !=   " 0 "   ?  converNumtoCapital(strOneNum)  +   " "  :  "" );
                    }
                }
            }

            
// 取整数部分
             if  (strMoney.IndexOf( " . " <   0 )
                strTemp 
=  strMoney;
            
else
                strTemp 
=  strMoney.Substring( 0 , strMoney.IndexOf( " . " ));

            iLen 
=  strTemp.Length;
            Console.WriteLine(strTemp);

            
if  (iLen  >   0   &&   decimal .Parse(strTemp)  !=   0 )
            {
                strConverted 
=   " "   +  strConverted;

                
for  (i  =   0 ; i  <  iLen;  ++ i)
                {
                    strOneNum 
=  strTemp.Substring(iLen  -   1   -  i,  1 );
                    
if  ((i  +   1 ==   1 )
                    {
                        strConverted 
=  (strOneNum  ==   " 0 "   ?   ""  : converNumtoCapital(strOneNum))  +  strConverted;
                    }
                    
else   if  (((i  +   1 %   4   ==   2   ||  (i  +   1 ==   2 &&  i  %   4   !=   0   &&  i  %   8   !=   0 )
                    {
                        
if  (strOneNum  ==   " 0 " )
                        {
                            
if  (strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " 亿 " )
                                
continue ;
                            
else
                                strConverted 
=   " "   +  strConverted;
                        }
                        
else
                            strConverted 
=  converNumtoCapital(strOneNum)  +   " "   +  strConverted;
                    }
                    
else   if  (((i  +   1 %   4   ==   3   ||  (i  +   1 ==   3 &&  i  %   4   !=   0 )
                    {
                        
if  (strOneNum  ==   " 0 " )
                        {
                            
if  (strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " 亿 " )
                                
continue ;
                            
else
                                strConverted 
=   " "   +  strConverted;
                        }
                        
else
                            strConverted 
=  converNumtoCapital(strOneNum)  +   " "   +  strConverted;
                    }
                    
else   if  ((i  +   1 %   4   ==   0   &&  i  %   4   !=   0 )
                    {
                        
if  (strOneNum  ==   " 0 " )
                        {
                            
if  (strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " "   ||  strConverted.Substring( 0 1 ==   " 亿 " )
                                
continue ;
                            
else
                                strConverted 
=   " "   +  strConverted;
                        }
                        
else
                            strConverted 
=  converNumtoCapital(strOneNum)  +   " "   +  strConverted;
                    }
                    
else   if  (i  %   4   ==   0   &&  i  %   8   !=   0 )
                    {
                        Console.WriteLine(
" 万位{0} " , i);
                        strConverted 
=  (strOneNum  ==   " 0 "   ?   ""  : converNumtoCapital(strOneNum))  +   " "   +  strConverted;
                    }
                    
else   if  (i  %   8   ==   0 )
                    {
                        Console.WriteLine(
" 亿位{0} " , i);
                        
if  (strConverted.Substring( 0 1 ==   " " ) strConverted  =  strConverted.Substring( 1 , strConverted.Length  -   1 );
                        strConverted 
=  (strOneNum  ==   " 0 "   ?   ""  : converNumtoCapital(strOneNum))  +   " 亿 "   +  strConverted;
                    }
                    
else
                    {
                        Console.WriteLine(i);
                        strConverted 
=  converNumtoCapital(strOneNum)  +  strConverted;
                    }
                }
            }

            
return  strConverted;
        }

        
static   string  converNumtoCapital( string  strNum)
        {
            
string  strCapital  =   "" ;
            
switch  (strNum)
            {
                
case   " 0 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 1 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 2 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 3 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 4 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 5 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 6 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 7 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 8 " :
                    strCapital 
=   " " ;
                    
break ;
                
case   " 9 " :
                    strCapital 
=   " " ;
                    
break ;
                
default :
                    strCapital 
=   "" ;
                    
break ;
            }
            
return  strCapital;
        }

 

目录
相关文章
关于Dev 控件里 gridcontrol 的gridview 显示序号和checkbox
关于Dev 控件里 gridcontrol 的gridview 显示序号和checkbox
|
4月前
|
存储 人工智能 自然语言处理
AI代理内存消耗过大?9种优化策略对比分析
在AI代理系统中,多代理协作虽能提升整体准确性,但真正决定性能的关键因素之一是**内存管理**。随着对话深度和长度的增加,内存消耗呈指数级增长,主要源于历史上下文、工具调用记录、数据库查询结果等组件的持续积累。本文深入探讨了从基础到高级的九种内存优化技术,涵盖顺序存储、滑动窗口、摘要型内存、基于检索的系统、内存增强变换器、分层优化、图形化记忆网络、压缩整合策略以及类操作系统内存管理。通过统一框架下的代码实现与性能评估,分析了每种技术的适用场景与局限性,为构建高效、可扩展的AI代理系统提供了系统性的优化路径和技术参考。
250 4
AI代理内存消耗过大?9种优化策略对比分析
|
设计模式 开发框架 前端开发
在DevExpress中使用BandedGridView表格实现多行表头的处理
在DevExpress中使用BandedGridView表格实现多行表头的处理
|
11月前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
1799 14
|
9月前
|
人工智能 搜索推荐 数据可视化
超越工具:DeepSeek 如何重塑你的工作方式
在这个信息爆炸的时代,DeepSeek 作为新一代人工智能助手,不仅提升具体任务执行效率,更通过智能化重构工作流程、优化决策机制和推动认知升级,实现个人生产力的革命性进步。它在项目管理、文档处理、数据分析等方面展现出卓越能力,自动处理重复任务,定制个性化解决方案,优化团队协作,重新定义工作效率与质量。拥抱 DeepSeek,开启全新的工作方式。
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
267 7
|
小程序 前端开发 Java
携程技术分享:亿级流量的办公IM及开放平台技术实践
本文总结了携程办公IM这些年的发展历程及未来的演进方向,并着重从高可用、高性能和可扩展的角度,探讨开放式平台的技术实现及发展方向。
290 1
携程技术分享:亿级流量的办公IM及开放平台技术实践
|
人工智能 机器人 UED
数字人模型网页手机云推流语音交互
随着AI技术的发展,数字人与大型语言模型的结合迎来了新机遇,各类数字人服务不断涌现,应用于多种场景。点量小芹发现许多厂商仍在探索如何优化数字人在移动端的表现。通过云推流实时渲染解决方案。无论是直播中的数字人形象定制,还是网页客服与大屏讲解的应用,只需将数字人模型置于服务器端,借助云渲染技术,用户即可在网页或移动设备上轻松使用高精度的数字人,显著降低硬件需求,提升互动体验。
469 13
|
算法 数据可视化 机器人
ROS中阶笔记(九):Movelt!机械臂控制
ROS中阶笔记(九):Movelt!机械臂控制
900 0
ROS中阶笔记(九):Movelt!机械臂控制
|
前端开发 Android开发 容器
Jetpack Navigation For Compose
很多Android项目使用Jetpack Navigation进行页面切换。Navigation 可以帮助 Compose 实现页面路由
376 0