2011-03-30 72 views
1
var doubleMaxValueString = double.MaxValue.ToString(CultureInfo.InvariantCulture); 

,我想將其轉換回雙,所以我在做這樣的:轉換雙字符串返回到一倍

,但它不工作...

我如何將它轉換回雙倍?

謝謝!

編輯: 它會拋出:OverflowExceptionValue:對於Double來說太大或太小。

我使用VAR,因爲它更實用=)

+4

你能更具體的不是「不工作」?它拋出異常嗎?你沒有得到你期望的價值嗎?不相關:我也很好奇你爲什麼選擇在這些情況下使用'var',因爲你知道這兩個函數返回的類型是什麼(但也許別人可以提供一個關於這個)。 – eldarerathis 2011-03-30 20:10:23

+0

你爲什麼這樣做?爲什麼你不會在第二個例子中使用'double.MaxValue'? – 2011-03-30 20:17:47

+0

我正在創建一個系統,用戶可以在其中鍵入一個值並選擇其類型,在這種情況下,我在測試時出現此錯誤...這就是爲什麼......我只是想了解爲什麼它不起作用。 – Bruno 2011-03-30 20:19:41

回答

7

你可以找到很好的解釋here。基本上問題是,在將double轉換爲string時,我們正在將其舍入,因此它超過了double.MaxValue。您可以通過這種方式解決,例如:在「R」的說法

var doubleMaxValueString = double.MaxValue.ToString("R", CultureInfo.InvariantCulture); 
var doubleMaxValue = double.Parse(doubleMaxValueString, CultureInfo.InvariantCulture); 

的更多信息,以及爲什麼它可以幫助發現here on msdn

+0

很酷,謝謝!但是R在這種情況下做了什麼? – Bruno 2011-03-30 20:22:11

+0

太棒了!謝謝! – Bruno 2011-03-30 20:23:15