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; } }