【发布时间】:2009-04-21 15:56:17
【问题描述】:
在我的应用程序中,我将一个值从 xml(字符串)解析为双精度值。 xml 中的值恰好将点作为分数分隔符,而系统采用当前系统设置并且可以有不同的分隔符(例如,开发系统采用逗号)。
有没有办法告诉 double.TryParse() 点是分数分隔符?
我应该用系统的分数分隔符手动替换点吗?如果是这样,我如何得到这个?
【问题讨论】:
标签: c# .net localization string-formatting
在我的应用程序中,我将一个值从 xml(字符串)解析为双精度值。 xml 中的值恰好将点作为分数分隔符,而系统采用当前系统设置并且可以有不同的分隔符(例如,开发系统采用逗号)。
有没有办法告诉 double.TryParse() 点是分数分隔符?
我应该用系统的分数分隔符手动替换点吗?如果是这样,我如何得到这个?
【问题讨论】:
标签: c# .net localization string-formatting
在这种情况下,您应该做的是使用 XmlConvert 类及其成员将 XML 文件中存在的值转换为常规变量。 :)
【讨论】:
将CultureInfo.InvariantCulture 传递给double.TryParse:
double value;
bool success = double.TryParse(text, NumberStyles.Float,
CultureInfo.InvariantCulture,
out value);
(对于真正的标准 XML 格式,Frederik 建议使用 XmlConvert 是最好的主意。)
【讨论】: