将带有转义字符的字符串转换为double

时间:2012-03-06 19:56:17

标签: c# string escaping double type-conversion

这可能是一个愚蠢的问题,但我不确定如何解决这个问题。你如何将这个字符串转换为double:

"\"15.4\""

字符串输入为:

"15.4"

我需要将其视为双倍。有可能吗?

5 个答案:

答案 0 :(得分:3)

首先修剪引号,然后解析字符串:

string input = "\"15.4\"";
double n = Double.Parse(input.Trim('"'), CultureInfo.InvariantCulture);

使用不变文化意味着解析使用句点作为小数分隔符,而不管当前的区域性设置。

答案 1 :(得分:2)

var s = "\"15.4\"";
var d = double.Parse(s.Trim('"'));

仅当已知'"'字符位于字符串的开头或结尾时才有效。如果可以进行其他配置,则处理它们的代码必须更加复杂。

答案 2 :(得分:1)

最简单的是:

double value = Double.Parse("\"15.4\"".Trim('"'));

但是,我建议您查看Double.TryParse,以便测试string未解析为double的内容。

double value;
if(!Double.TryParse("\"15.4\"".Trim('"'), out value)) {
   // it didn't parse
}

答案 3 :(得分:1)

答案 4 :(得分:0)

您需要删除引号,然后解析它。

var str = "\"15.4\"";
str = str.Replace("\"", "");
var num = double.Parse(str);