我不能讓我的應用程序將字符串轉換成浮動:將字符串轉換爲float拋出錯誤「格式不正確」
float number = float.Parse(match);
在哪裏比賽是「0.791794」。
爲什麼不能正常工作?我得到的錯誤是「輸入字符串格式不正確」,但我不明白它有什麼問題。
我不能讓我的應用程序將字符串轉換成浮動:將字符串轉換爲float拋出錯誤「格式不正確」
float number = float.Parse(match);
在哪裏比賽是「0.791794」。
爲什麼不能正常工作?我得到的錯誤是「輸入字符串格式不正確」,但我不明白它有什麼問題。
嘗試傳遞一個文化對象(即InvariantCulture,如果這是系統存儲的數據且格式不會有所不同)接受一個過載;你當前的文化可能會被設置爲一個逗號作爲分隔符,而不是一段時間(或類似的)。
您也可以嘗試
string x = (0.791794f).ToString()
只是爲了看看它打印出來。
檢查CultureInfo.CurrentCulture可能也很有指導性。
(此外,完整性檢查 - 我認爲這些報價來自你,而不是字符串的一部分珍惜自己呢?)
你確定match
是string
類型嗎?您可能需要對其進行註釋。
'match'是一個'string',是的。我有'string match = someOtherString;' – Phoexo 2010-02-05 21:17:22
似乎在2008年
static void Main(string[] args)
{
var match = "0.791794";
float number = float.Parse(match);
Console.Out.Write(number);
}
你migth嘗試重新啓動做工精細與 希望有幫助
+1我還沒有遇到過這個問題,我不知道爲什麼我沒有給出我們運行過的文檔的數量。但這真是一個很好的觀點。 – 2010-02-05 21:18:50
Gah,愚蠢的挪威數字系統,我們使用','作爲小數分隔符,因此它不適用於'match'中的'.'。 – Phoexo 2010-02-05 21:21:11
是的。無效的格式意味着它不符合當前UI文化預期的規則,數字通常意味着逗號與期間的IME。 ;)當你調用.ToString,string.Format或者.Parse時,你應該傳遞某種CultureInfo對象,只是爲了明確它的可能性(並且讓你考慮不同的文化規則)。 – technophile 2010-02-05 21:27:00