-2

文字列をdoubleに割り当てる方法を理解するのに助けが必要です。

double value = "myString";

私は持っていますdouble value = double.Parse("myString"); が、これはをスローしFormatExceptionます。

私はこのように連結しようとしています:

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

5 に答える 5

3

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」など) を渡す可能性が高い場合に役立ちます。

于 2012-08-12T16:51:07.560 に答える
1

myString が有効な二重文字列表現であると仮定して解析します (例: "3.49"、"1394.293"、"-1.30E3")。

double value = double.Parse(myString)

通常の数値型のほとんど (すべて?) には parse メソッドがあります。有効かどうかわからない場合は、TryParse を使用します (「abc」を数値として解析しようとすると、例外がスローされます)。

@LB カスタム解析の場合、次のように NumberFormatInfo を定義できます。

    var a = new System.Globalization.NumberFormatInfo()
    a.NumberDecimalSeparator = ",";
    a.NumberGroupSeparator = ".";
    double d = Double.Parse("1.000.000,5", a);
于 2012-08-12T16:40:57.863 に答える
1

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");
}
于 2012-08-12T16:41:59.427 に答える
0

文字列を double に割り当てることはできません。それは不可能だ。double は数値型です。文字列はそうではありません。

double の文字列を解析すると可能です。

var doubleThing = Double.Parse("9.99");
于 2012-08-12T16:40:04.607 に答える
0
double.Parse(string);

形式が正しくない場合、例外を処理できます。何を解析しようとしていますか?

double.TryParse("1.05", out value);

解析が成功または失敗した場合に true または false を返します。

于 2012-08-12T16:42:34.773 に答える