我有一个使用点(“。”)作为小数点分隔符的源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