2010-02-05 22 views

回答

7

嘗試傳遞一個文化對象(即InvariantCulture,如果這是系統存儲的數據且格式不會有所不同)接受一個過載;你當前的文化可能會被設置爲一個逗號作爲分隔符,而不是一段時間(或類似的)。

您也可以嘗試

string x = (0.791794f).ToString() 

只是爲了看看它打印出來。

檢查CultureInfo.CurrentCulture可能也很有指導性。

(此外,完整性檢查 - 我認爲這些報價來自你,而不是字符串的一部分珍惜自己呢?)

+0

+1我還沒有遇到過這個問題,我不知道爲什麼我沒有給出我們運行過的文檔的數量。但這真是一個很好的觀點。 – 2010-02-05 21:18:50

+0

Gah,愚蠢的挪威數字系統,我們使用','作爲小數分隔符,因此它不適用於'match'中的'.'。 – Phoexo 2010-02-05 21:21:11

+0

是的。無效的格式意味着它不符合當前UI文化預期的規則,數字通常意味着逗號與期間的IME。 ;)當你調用.ToString,string.Format或者.Parse時,你應該傳遞某種CultureInfo對象,只是爲了明確它的可能性(並且讓你考慮不同的文化規則)。 – technophile 2010-02-05 21:27:00

0

你確定matchstring類型嗎?您可能需要對其進行註釋。

+0

'match'是一個'string',是的。我有'string match = someOtherString;' – Phoexo 2010-02-05 21:17:22

0

似乎在2008年

static void Main(string[] args) 
    { 
     var match = "0.791794"; 
     float number = float.Parse(match); 
     Console.Out.Write(number); 
    } 

你migth嘗試重新啓動做工精細與 希望有幫助

相關問題