C#如何将字符串分配给双精度

C#如何将字符串分配给双精度,c#,string,double,C#,String,Double,我需要帮助找出如何将字符串分配给double double value = "myString"; 我有double value=double.Parse(“myString”)但这会引发格式异常 我尝试这样连接: string stringValue += doubleValue.toString() + intValue.ToString; return stringValue; 不能将字符串指定给双精度字符。这是不可能的。double是一种数字类型。字符串不是 如果您解析的字符串是双精

我需要帮助找出如何将字符串分配给double

double value = "myString";
我有
double value=double.Parse(“myString”)但这会引发
格式异常

我尝试这样连接:

string stringValue += doubleValue.toString() + intValue.ToString;
return stringValue;

不能将字符串指定给双精度字符。这是不可能的。double是一种数字类型。字符串不是

如果您解析的字符串是双精度的,那么这是可能的

var doubleThing = Double.Parse("9.99");
假设myString是一个有效的双字符串表示(例如“3.49”、“1394.293”、“-1.30E3”)

大多数(所有?)正常的数值类型都有解析方法。如果不确定TryParse是否有效,请使用TryParse(尝试将“abc”解析为数字将引发异常)

@L.B对于自定义解析,您可以定义如下所示的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");
}
如果格式不正确,可以并将通过异常处理。你想解析什么

double.TryParse("1.05", out value);
如果解析成功或失败,将返回true或false

我有double value=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”)的情况下非常有用,因为它返回一个表示成功或失败的布尔值,而不是抛出一个异常。

您要传递给
double.parse()
的字符串到底是什么?您希望
的“myString”是什么
转换成什么?你到底想做什么?你的例子并没有真正说明你想做什么。如果您提供更多关于您的目标的详细信息,也许我们可以提供更好的建议:连接与解析双重数有什么关系?然后你会根据结果得到一个双精度吗?你根本无法从一个单词中得到一个数值。大象加了什么?可能是输入错误,但您也在尝试向方法组添加字符串。
1.000.000,5
是否有效?@L.B我想我们可以设计一个自定义的CultureInfo,其中“myString”是表示54.23的一种方式,然后它将不再抛出!
double.Parse(string);
double.TryParse("1.05", out value);