【发布时间】:2012-03-24 08:31:05
【问题描述】:
这可能是一个愚蠢的问题,但我不确定如何解决这个问题。您如何将此字符串转换为双精度:
"\"15.4\""
字符串如下:
"15.4"
我需要把它看成一个替身。有可能吗?
【问题讨论】:
标签: c# string escaping double type-conversion
这可能是一个愚蠢的问题,但我不确定如何解决这个问题。您如何将此字符串转换为双精度:
"\"15.4\""
字符串如下:
"15.4"
我需要把它看成一个替身。有可能吗?
【问题讨论】:
标签: c# string escaping double type-conversion
最简单的是:
double value = Double.Parse("\"15.4\"".Trim('"'));
但是,我鼓励您查看Double.TryParse,以便您可以测试不解析为doubles 的strings。
double value;
if(!Double.TryParse("\"15.4\"".Trim('"'), out value)) {
// it didn't parse
}
【讨论】:
'"' 字符。
【讨论】:
"15.4",而是"\"15.4\""
var s = "\"15.4\"";
var d = double.Parse(s.Trim('"'));
这仅在已知'"' 字符位于字符串的开头或结尾时才有效。如果其他配置是可能的,那么处理它们的代码必须稍微复杂一些。
【讨论】:
先修剪引号,再解析字符串:
string input = "\"15.4\"";
double n = Double.Parse(input.Trim('"'), CultureInfo.InvariantCulture);
使用不变的文化意味着解析使用句点作为小数分隔符,无论您当前的文化设置如何。
【讨论】:
你需要去掉引号,然后解析它。
var str = "\"15.4\"";
str = str.Replace("\"", "");
var num = double.Parse(str);
【讨论】:
\"15\".4\")