我需要帮助弄清楚如何将字符串分配给双精度。
double value = "myString";
我有double value = double.Parse("myString");
,但这会抛出一个FormatException
.
我试图像这样连接:
string stringValue += doubleValue.toString() + intValue.ToString;
return stringValue;
我有双值 = double.Parse("myString"); 但这会引发 string.Format 错误。
是的,这就是您在这种情况下想要的行为。“myString” 没有数值,所以给出正确的数值是抛出格式错误。
double.Parse("1.2")
是否有效取决于所使用的文化是 1.2 表示为“1.2”还是“1,2”的文化。double.Parse("1.2", CultureInfo.InvariantCulture)
将始终返回 1.2,因为它特定于使用哪种文化。
double.TryParse
在有人可能传递不适当的字符串(如“myString”)时很有用,因为它返回一个表示成功或失败的布尔值,而不是抛出异常。
解析它,假设 myString 是一个有效的双字符串表示(例如“3.49”、“1394.293”、“-1.30E3”)
double value = double.Parse(myString)
大多数(全部?)普通数值类型都有解析方法。如果您不确定它是否有效,请使用 TryParse(尝试将“abc”解析为数字将引发异常)
@LB 对于自定义解析,您可以像这样定义 NumberFormatInfo :
var a = new System.Globalization.NumberFormatInfo()
a.NumberDecimalSeparator = ",";
a.NumberGroupSeparator = ".";
double d = Double.Parse("1.000.000,5", a);
您可以使用 TryParse
string x = "1234";
double y;
if(double.TryParse(x, out y))
{
Console.WriteLine("success y = " + y.ToString());
}
else
{
Console.WriteLine(x + " could not be converted to a double");
}
您不能将字符串分配给双精度数。不可能。双精度型是一种数字类型。字符串不是。
如果您解析一个双精度字符串,则有可能。
var doubleThing = Double.Parse("9.99");
double.Parse(string);
如果格式不正确,可以并且将通过异常。你想解析什么?
double.TryParse("1.05", out value);
如果解析成功或失败,将返回 true 或 false。