常用类型转换

 

 using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  System.Data;
using  System.Collections;
using  Microsoft.VisualBasic;

namespace  Thewolfs.Framework.Text
{
    
///   <summary>
    
///  类型转换类
    
///   </summary>
     public   class  TwConvert
    {
        
#region  将数字金额转换成大写人民币形式。
        
///   <summary>
        
///  将数字金额转换成大写人民币形式。
        
///   </summary>
        
///   <param name="num"> 金额 </param>
        
///   <returns> 返回大写形式 </returns>
         public   static   string  Num2RMB( decimal  num)
        {
            
string  _chineseNumbers  =   " 零壹贰叁肆伍陆柒捌玖 " // 0-9所对应的汉字
             string  _chineseUnits  =   " 万仟佰拾亿仟佰拾万仟佰拾元角分 " // 数字位所对应的汉字
             string  _sourceNumItem  =   "" // 从原num值中取出的值
             string  _chineseNumItem  =   "" // 数字的字符串形式
             string  _chineseUnitItem  =   "" // 人民币大写金额形式
             int  i;  // 循环变量
             int  j;  // num的值乘以100的字符串长度
             string  _chineseNumberSpell  =   "" // 数字的汉语读法
             string  _chineseUnitSpell  =   "" // 数字位的汉字读法
             int  _continuousZeroCount  =   0 // 用来计算连续的零值是几个
             int  _tempNumber;  // 从原num值中取出的值

            num 
=  Math.Round(Math.Abs(num),  2 );  // 将num取绝对值并四舍五入取2位小数
            _chineseNumItem  =  (( long )(num  *   100 )).ToString();  // 将num乘100并转换成字符串形式
            j  =  _chineseNumItem.Length;  // 找出最高位
             if  (j  >   15 )
            {
                
return   " 溢出 " ;
            }
            _chineseUnits 
=  _chineseUnits.Substring( 15   -  j);  // 取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分

            
// 循环取出每一位需要转换的值
             for  (i  =   0 ; i  <  j; i ++ )
            {
                _sourceNumItem 
=  _chineseNumItem.Substring(i,  1 );  // 取出需转换的某一位的值
                _tempNumber  =  Convert.ToInt32(_sourceNumItem);  // 转换为数字
                 if  (i  !=  (j  -   3 &&  i  !=  (j  -   7 &&  i  !=  (j  -   11 &&  i  !=  (j  -   15 ))
                {
                    
// 当所取位数不为元、万、亿、万亿上的数字时
                     if  (_sourceNumItem  ==   " 0 " )
                    {
                        _chineseNumberSpell 
=   "" ;
                        _chineseUnitSpell 
=   "" ;
                        _continuousZeroCount 
=  _continuousZeroCount  +   1 ;
                    }
                    
else
                    {
                        
if  (_sourceNumItem  !=   " 0 "   &&  _continuousZeroCount  !=   0 )
                        {
                            _chineseNumberSpell 
=   " "   +  _chineseNumbers.Substring(_tempNumber  *   1 1 );
                            _chineseUnitSpell 
=  _chineseUnits.Substring(i,  1 );
                            _continuousZeroCount 
=   0 ;
                        }
                        
else
                        {
                            _chineseNumberSpell 
=  _chineseNumbers.Substring(_tempNumber  *   1 1 );
                            _chineseUnitSpell 
=  _chineseUnits.Substring(i,  1 );
                            _continuousZeroCount 
=   0 ;
                        }
                    }
                }
                
else
                {
                    
// 该位是万亿,亿,万,元位等关键位
                     if  (_sourceNumItem  !=   " 0 "   &&  _continuousZeroCount  !=   0 )
                    {
                        _chineseNumberSpell 
=   " "   +  _chineseNumbers.Substring(_tempNumber  *   1 1 );
                        _chineseUnitSpell 
=  _chineseUnits.Substring(i,  1 );
                        _continuousZeroCount 
=   0 ;
                    }
                    
else
                    {
                        
if  (_sourceNumItem  !=   " 0 "   &&  _continuousZeroCount  ==   0 )
                        {
                            _chineseNumberSpell 
=  _chineseNumbers.Substring(_tempNumber  *   1 1 );
                            _chineseUnitSpell 
=  _chineseUnits.Substring(i,  1 );
                            _continuousZeroCount 
=   0 ;
                        }
                        
else
                        {
                            
if  (_sourceNumItem  ==   " 0 "   &&  _continuousZeroCount  >=   3 )
                            {
                                _chineseNumberSpell 
=   "" ;
                                _chineseUnitSpell 
=   "" ;
                                _continuousZeroCount 
=  _continuousZeroCount  +   1 ;
                            }
                            
else
                            {
                                
if  (j  >=   11 )
                                {
                                    _chineseNumberSpell 
=   "" ;
                                    _continuousZeroCount 
=  _continuousZeroCount  +   1 ;
                                }
                                
else
                                {
                                    _chineseNumberSpell 
=   "" ;
                                    _chineseUnitSpell 
=  _chineseUnits.Substring(i,  1 );
                                    _continuousZeroCount 
=  _continuousZeroCount  +   1 ;
                                }
                            }
                        }
                    }
                }
                
if  (i  ==  (j  -   11 ||  i  ==  (j  -   3 ))
                {
                    
// 如果该位是亿位或元位,则必须写上
                    _chineseUnitSpell  =  _chineseUnits.Substring(i,  1 );
                }
                _chineseUnitItem 
=  _chineseUnitItem  +  _chineseNumberSpell  +  _chineseUnitSpell;

                
if  (i  ==  j  -   1   &&  _sourceNumItem  ==   " 0 " )
                {
                    
// 最后一位(分)为0时,加上“整”
                    _chineseUnitItem  =  _chineseUnitItem  +   ' ' ;
                }
            }
            
if  (num  ==   0 )
            {
                _chineseUnitItem 
=   " 零元整 " ;
            }
            
return  _chineseUnitItem;
        }

        
///   <summary>
        
///  将数字金额转换成大写人民币形式。
        
///  一个重载,将字符串先转换成数字在调用CmycurD(decimal num)
        
///   </summary>
        
///   <param name="numstr"> 用户输入的金额,字符串形式未转成decimal </param>
        
///   <returns></returns>
         public   static   string  Num2RMB( string  numstr)
        {
            
try
            {
                
decimal  num  =  Convert.ToDecimal(numstr);
                
return  Num2RMB(num);
            }
            
catch
            {
                
return   " 非数字形式! " ;
            }
        }
        
#endregion

        
#region  GB2312转换成UTF-8
        
///   <summary>
        
///  将GB2312转换成UTF-8
        
///   </summary>
        
///   <param name="s"></param>
        
///   <returns></returns>
         public   static   string  GB2312ToUTF8( string  content)
        {
            
byte [] _byteData  =  Encoding.Default.GetBytes(content);
            String _content 
=  Encoding.UTF8.GetString(_byteData);
            
return  _content;
        }
        
#endregion

        
#region  类型转换

        
#region  Boolean类型转换
        
///   <summary>
        
///  转换成Boolean类型
        
///   </summary>
        
///   <param name="value"> 值可以是 true false 或者 1 0 </param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   bool  ToBoolean( object  value,  bool  defaultValue)
        {
            
if  (value  ==   null )
            {
                
return  defaultValue;
            }
            
string  _value  =  value.ToString().ToLower();
            
if  (_value  ==   " true "   ||  _value  ==   " 1 "   ||  _value  ==   " -1 " )
            {
                
return   true ;
            }
            
if  (_value  ==   " false "   ||  _value  ==   " 0 " )
            {
                
return   false ;
            }

            
return  defaultValue;
        }

        
///   <summary>
        
///  转换成Boolean类型,[默认值 = False]
        
///   </summary>
        
///   <param name="value"> 值可以是 true false 或者 1 0 </param>
        
///   <returns></returns>
         public   static   bool  ToBoolean( object  value)
        {
            
return  ToBoolean(value,  false );
        }
        
#endregion

        
#region  Char类型转换
        
///   <summary>
        
///  转换成Char类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   char  ToChar( object  value,  char  defaultValue)
        {
            
try
            {
                
char  _value  =  Convert.ToChar(value);
                
return  _value;
            }
            
catch
            {
                
return  defaultValue;
            }
        }
        
#endregion

        
#region  DateTime类型转换
        
///   <summary>
        
///  转换成 DateTime 类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static  System.DateTime ToDateTime( object  value, System.DateTime defaultValue)
        {
            
try
            {
                
return  Convert.ToDateTime(value);
            }
            
catch
            {
                
return  defaultValue;
            }
        }

        
///   <summary>
        
///  转换成 DateTime 类型 [默认值 = DateTime.Now]
        
///   </summary>
        
///   <param name="value"></param>
        
///   <returns></returns>
         public   static  System.DateTime ToDateTime( object  value)
        {
            
return  ToDateTime(value, DateTime.Now);
        }
        
#endregion


        
#region  Decimal类型转换
        
///   <summary>
        
///  转换成 Decimal 类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   decimal  ToDecimal( object  value, Decimal defaultValue)
        {
            
try
            {
                
decimal  _value  =  Convert.ToDecimal(value);
                
return  _value;
            }
            
catch
            {
                
return  defaultValue;
            }
        }

        
///   <summary>
        
///  转换成 Decimal 类型 [默认值 = -1]
        
///   </summary>
        
///   <param name="value"></param>
        
///   <returns></returns>
         public   static   decimal  ToDecimal( object  value)
        {
            
return  ToDecimal(value,  - 1 );
        }
        
#endregion

        
#region  Double类型转换
        
///   <summary>
        
///  转换成 Double 类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   double  ToDouble( object  value,  double  defaultValue)
        {
            
try
            {
                
double  _value  =  Convert.ToDouble(value);
                
return  _value;
            }
            
catch
            {
                
return  defaultValue;
            }
        }

        
///   <summary>
        
///  转换成 Double 类型 [默认值 = -1]
        
///   </summary>
        
///   <param name="value"></param>
        
///   <returns></returns>
         public   static   double  ToDouble( object  value)
        {
            
return  ToDouble(value,  - 1 );
        }
        
#endregion

        
#region  Int16类型转换
        
///   <summary>
        
///  转换成 short [Int16] 类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   short  ToInt16( object  value,  short  defaultValue)
        {
            
try
            {
                
short  _value  =  Convert.ToInt16(value);
                
return  _value;
            }
            
catch
            {
                
return  defaultValue;
            }
        }
        
///   <summary>
        
///  转换成 short [Int16] 类型 [默认值 = -1]
        
///   </summary>
        
///   <param name="value"></param>
        
///   <returns></returns>
         public   static   short  ToInt16( object  value)
        {
            
return  ToInt16(value,  - 1 );
        }
        
#endregion

        
#region  Int32类型转换
        
///   <summary>
        
///  转换成 int[Int32] 类型 [默认值 = -1]
        
///   </summary>
        
///   <param name="value"></param>
        
///   <returns></returns>
         public   static   int  ToInt32( object  value)
        {
            
return  ToInt32(value,  - 1 );
        }

        
///   <summary>
        
///  转换成 int[Int32] 类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   int  ToInt32( object  value,  int  defaultValue)
        {
            
try
            {
                
return  Convert.ToInt32(value);
            }
            
catch
            {
                
return  defaultValue;
            }
        }
        
#endregion

        
#region  Int64类型转换
        
///   <summary>
        
///  转换成 long[Int64] 类型
        
///   </summary>
        
///   <param name="value"></param>
        
///   <param name="defaultValue"> 当值无法转换时的默认值 </param>
        
///   <returns></returns>
         public   static   long  ToInt64( object  value,  long  defaultValue)
        {
            
try
            {
                
long  _value  =  Convert.ToInt64(value);
                
return  _value;
            }
            
catch
            {
                
return  defaultValue;
            }
        }

        
///   <summary>
        
///  转换成 long[Int64] 类型 [默认值 = -1]
        
///   </summary>
        
///   <param name="value"></param>
        
///   <returns></returns>
         public   static   long  ToInt64( object  value)
        {
            
return  ToInt64(value,  - 1 );
        }
        
#endregion

        
///   <summary>
        
///  将以符号分割的字符串转换成ArrayList类型
        
///   </summary>
        
///   <param name="content"></param>
        
///   <param name="splitChar"> 分割符如:, </param>
        
///   <returns></returns>
         public   static  ArrayList StringToArrayList( string  content,  char  splitChar)
        {
            ArrayList al 
=   new  ArrayList();
            
foreach  ( string  str  in  content.Split(splitChar))
            {
                al.Add(str);
            }
            
return  al;
        }

        
#endregion
    }
}

 

转载于:https://www.cnblogs.com/netAICode/archive/2009/09/24/1572982.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值