如何指定我的decimal.Parse必須始終期望接收帶'。'的字符串。像「4.75」不管電腦的系統設置是什麼?c#double.parse()總是使用a。期間不逗號
我正在閱讀excel文件,它給了我一個'。'的價值。我看到,如果我在我的筆記本電腦,則拋出和錯誤運行我的程序,因爲它需要一個「」
我可以使用:
string tmp1 = tmp[2].Replace('.', ',');
但後來很明顯,如果我的電腦想要一個‘’。那麼它會給出一個錯誤。
我最好的選擇是什麼?
如何指定我的decimal.Parse必須始終期望接收帶'。'的字符串。像「4.75」不管電腦的系統設置是什麼?c#double.parse()總是使用a。期間不逗號
我正在閱讀excel文件,它給了我一個'。'的價值。我看到,如果我在我的筆記本電腦,則拋出和錯誤運行我的程序,因爲它需要一個「」
我可以使用:
string tmp1 = tmp[2].Replace('.', ',');
但後來很明顯,如果我的電腦想要一個‘’。那麼它會給出一個錯誤。
我最好的選擇是什麼?
參見:Double.Parse
使用此重載你的情況CultureInfo.InvariantCulture
指定IFormatProvider
。
var value = double.Parse(tmp[2], CultureInfo.InvariantCulture);
但是,如果您打算讓您的過程持久,我會推薦Double.TryParse
。
double value;
if(!double.TryParse(tmp[2],
NumberStyles.None,
CultureInfo.InvariantCulture,
out value))
{
// error handling
}
使用Double.Parse Method (String, IFormatProvider)
與CultureInfo.InvariantCulture
進行解析。
double d = double.Parse("2.2", CultureInfo.InvariantCulture);
你可以使用的Decimal.Parse過載,這將允許你指定一個文化:
decimal value = decimal.Parse(tmp[2], CultureInfo.InvariantCulture);