我有一個使用點(「。」)作爲小數點分隔符的源XML,並且在使用逗號(「,」 )作爲小數分隔符。Double.TryParse()輸入小數點分隔符不同於系統小數點分隔符
結果,值0.7獲取與Double.TryParse
或Double.Parse
爲700萬
什麼是我的選擇正確解析解析?其中之一是用逗號代替String.Replace('.', ',')
,但我不認爲我很喜歡這個。
我有一個使用點(「。」)作爲小數點分隔符的源XML,並且在使用逗號(「,」 )作爲小數分隔符。Double.TryParse()輸入小數點分隔符不同於系統小數點分隔符
結果,值0.7獲取與Double.TryParse
或Double.Parse
爲700萬
什麼是我的選擇正確解析解析?其中之一是用逗號代替String.Replace('.', ',')
,但我不認爲我很喜歡這個。
XML標準是明確的關於日期和數字等的格式這有助於確保XML是獨立於平臺和互操作性。看看使用XmlConvert來獲取xml數據。
double value = XmlConvert.ToDouble(stringValue);
double.TryParse
有一個承擔IFormatProvider的重載。使用文件信息CultureInfo,在你的情況下可以使用CultureInfo.InvariantCulture。
一個例子就好了,對我們懶惰類型。 – Fueled 2012-08-14 20:17:46
這做工作:
string test = "0.7";
Assert.Equal(0.7, Double.Parse(test, NumberStyles.Float, CultureInfo.InvariantCulture));
爲什麼downvote? – asgerhallas 2010-05-16 20:58:52
你應該介紹一下這個方法的原理和原理。 – Lii 2015-03-04 08:56:01
簡單的方法來指定自定義小數點分隔符:
var price = "122$00";
var nfi = new NumberFormatInfo { CurrencyDecimalSeparator = "$" };
var ok = decimal.TryParse(price, NumberStyles.Currency, nfi, out result);
這是一個很好的建議,因爲很多人都不知道XmlConvert類。使用DateTime值時,這一點尤爲重要。 – Josh 2010-05-16 18:18:14
是的,我也沒有意識到這一點。謝謝! – asgerhallas 2010-05-16 20:58:13
我不知道。謝謝。 – JefClaes 2011-11-02 08:32:59