我想字符串轉換像".1"
,".2"
等爲0.1
,0.2
等轉換 「.1" ,」 0.2" 翻一番
我想:
Convert.ToDouble(".1")
和崩潰。我明白爲什麼它崩潰,但我仍然需要將其轉換爲有效的雙數。我知道我可以通過分割字符串和解析來做到這一點,但是有沒有更好的方法?
我想字符串轉換像".1"
,".2"
等爲0.1
,0.2
等轉換 「.1" ,」 0.2" 翻一番
我想:
Convert.ToDouble(".1")
和崩潰。我明白爲什麼它崩潰,但我仍然需要將其轉換爲有效的雙數。我知道我可以通過分割字符串和解析來做到這一點,但是有沒有更好的方法?
Convert.ToDouble
使用當前的文化設置默認。
也許你目前的文化有不同的字符串比.
作爲NumberDecimalSeparator
。
作爲一個解決方案,你可以使用已經有.
作爲NumberDecimalSeparator
像InvariantCulture
,文化或者你可以Clone
您CurrentCulture
,設置它的NumberDecimalSeparator
到.
並在Convert.ToDouble
方法使用是克隆培養(或double.Parse
)作爲第二參數。
var d = double.Parse(".1", CultureInfo.InvariantCulture);
或
var clone = (CultureInfo)CultureInfo.CurrentCulture.Clone();
clone.NumberFormat.NumberDecimalSeparator = ".";
var d = double.Parse(".1", clone);
也得到我的每一次... –
試試這個:
Double result = Double.Parse(".1", CultureInfo.InvariantCulture);
通過specifing CultureInfo.InvariantCulture
可以確保.
是一個小數點分隔符。
它不會「崩潰」,它拋出一個異常。您的語言環境是否使用逗號作爲小數點分隔符? – CodeCaster
它甚至沒有做到這一點,[dotnetfiddle(https://dotnetfiddle.net/hnDW6c),你得到了什麼錯誤?這對我的作品 – Sayse
@Sayse我收到「System.FormatException」 –