C#字符串轉換為float


 

1、解決不同計算機上,區域和時間不同而引起的轉換問題(如:“123.456”報“字符串格式不正確”問題

//解決區域、語言變更引起的“識別不出小數點問題”如:轉換時“123.456”轉換時不認識"."

    /// <summary>
    /// 數學轉換類
    /// </summary>
    public class MathConverter
    {

        /// <summary>
        /// object 轉換 float(轉換失敗,則嘗試將前部分數字轉換為float)
        /// </summary>
        /// <param name="obj2Float"></param>
        /// <returns>默認:0.00</returns>
        public static float ObjectToFloat(object obj2Float)
        {
            float result = 0.00f;   //默認值
            if (obj2Float != null)
            {
                string str2Float = obj2Float.ToString();        //object to string
                if (!float.TryParse(str2Float, out result))     //string直接轉換為float,若失敗,則獲取字符串前部分數字轉換為float
                {
                    string strNumber = string.Empty;
                    foreach(char iChr in str2Float)             
                    {
                        if(Char.IsNumber(iChr))
                        {
                            strNumber += iChr;
                        }
                        else
                        {
                            break;
                        }
                    }
                    if(!string.IsNullOrEmpty(strNumber))
                    {
                        float.TryParse(strNumber, out result);
                    }
                }
            }
            return result;
        }

        /// <summary>
        /// object 轉換 float(轉換失敗,則嘗試將前部分數字轉換為float)
        /// </summary>
        /// <param name="obj2Float"></param>
        /// <param name="result">默認:0.00f</param>
        /// <returns>false : 轉換失敗</returns>
        public static bool TryObjectToFloat(object obj2Float, out float result)
        {
            bool isSuccess = false;
            result = 0.00f;   //默認值
            if (obj2Float != null)
            {
                string str2Float = obj2Float.ToString();        //object to string
                if (!float.TryParse(str2Float, out result))     //string直接轉換為float,若失敗,則獲取字符串前部分數字轉換為float
                {
                    string strNumber = string.Empty;
                    foreach (char iChr in str2Float)
                    {
                        if (Char.IsNumber(iChr))
                        {
                            strNumber += iChr;
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (!string.IsNullOrEmpty(strNumber))
                    {
                        if(float.TryParse(strNumber, out result))
                        {
                            isSuccess = true;
                        }
                    }
                }
                else
                {
                    isSuccess = true;
                }
            }
            return isSuccess;
        }
    }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM