如何从字符串中获取正确的两位数。
string first = "23.3";
string second = "23,3";
现在我使用示例解析器以双格式解析数字:
double number = double.Parse(first);
double another = double.Parse(second);
因此,如果我使用en-US文化并使用小数分隔符'。'然后结果将是number = 23.3
和another = 233
。
所以我的问题是可以忽略小数分隔符,何时解析两种情况都返回结果= 23.3。
答案 0 :(得分:2)
除了用点替换逗号外,还需要提供正确的数字格式:
public double ParseMyString(string myString)
{
return double.Parse(myString.Replace(',', '.'),
new NumberFormatInfo() {NumberDecimalSeparator = "."});
}
在更广泛的范围内替换分隔符的另一个选择是使用:
Thread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
你仍然需要用点替换逗号。
答案 1 :(得分:0)
你可以玩一招:
private string ReplaceSeparator(string Num)
{
return Num.Replace(",", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator).Replace(".", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
}
.....
string first = "23.3";
string second = "23,3";
first = ReplaceSeparator(first);
second = ReplaceSeparator(second);
double number = double.Parse(first);
double another = double.Parse(second);