[英]How to parse from String to Float in C#?
這個問題應該很簡單,但是我找不到使其工作的方法。 我有以下代碼:
string yeah = "0.5";
float yeahFloat = float.Parse(yeah);
MessageBox.Show(yeahFloat.ToString());
但是消息框顯示為“ 5”而不是“ 0.5”。 如何使用float解決此問題?
float yeahFloat = float.Parse(yeah, CultureInfo.InvariantCulture);
請參閱文檔: http : //msdn.microsoft.com/en-us/library/bh4863by.aspx
0.5
是某些國家/地區寫小數的方式,例如在美國。 在法國,小數點后更多用逗號寫: 0,5
。
通常,您提供的代碼會在我的計算機上引發異常。
您需要指定您希望從哪種文化中解析字符串。 如果不是這樣,將需要您的計算機區域性設置,這很糟糕,因為您的代碼可以在不同的國家/地區運行。
因此,通過指定不變的區域性,您對Parse函數說了:好的,讓我們嘗試解析點或逗號,並盡最大努力:
string yeah = "0.5";
float yeahFloat = float.Parse(yeah, CultureInfo.InvariantCulture);
Console.Write(yeahFloat);
關於這個問題已經有很多問題了:
默認情況下, Single.Parse(String)
根據您的本地化設置進行解析。 如果要使用特定的方法,則必須使用該方法的適當重載以及所需的區域性設置。
您可以使用float.TryParse()進行嘗試:
string yeah = "0.5";
float yeahFloat;
if (float.TryParse(yeah,System.Globalization.NumberStyles.Any,
System.Globalization.CultureInfo.InvariantCulture,out yeahFloat))
{
MessageBox.Show(yeahFloat.ToString());
}
嘗試在ToString()方法中傳遞所需的格式
MessageBox.Show(yeahFloat.ToString("0.0")); // 1 decimal place
String yeah = "0.5";
float yeahFloat = Convert.ToSingle(yeah);
MessageBox.Show(yeahFloat.ToString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.