String
をDouble
データ型に変換したいとします。 parseDouble
またはvalueOf
を使用する必要があるかどうかわかりません。Double.parseDouble(String)とDouble.valueOf(String)の違いは何ですか?
これら2つの方法の違いは何ですか?
String
をDouble
データ型に変換したいとします。 parseDouble
またはvalueOf
を使用する必要があるかどうかわかりません。Double.parseDouble(String)とDouble.valueOf(String)の違いは何ですか?
これら2つの方法の違いは何ですか?
parseDouble
は、文字列のプリミティブなdouble含む値を返します。DoubleクラスのvalueOfメソッドを実行した場合と同様に
は、指定されたStringが表す値に初期化された新しいdoubleを返します。
valueOf
は、Doubleインスタンスを返します。すでにキャッシュされている場合、同じキャッシュされたインスタンスが取得されます。
指定されたdouble値を表すDoubleインスタンスを返します。 新しいDoubleインスタンスが必要ない場合は、このメソッドは一般的に コンストラクタDouble(double)よりも優先される必要があります。 は、頻繁に要求される値をキャッシュすることによって大幅に改善されます。
新しいDoubleオブジェクトのインスタンスを作成するオーバーヘッドを回避するために、あなたは通常、あなたは、ダブルデータ型に文字列を変換したい場合は、最もparseDouble()メソッドを選択しvalueOf
+1の 'valueOf()'のファミリーはこの理由から好まれています... –
あなたは私がparseDouble()が好まれると言いました。なぜvalueOf()ですか? – breceivemail
編集は私のものではなく、無効です。私はそれをロールバックします。 – MByD
のドキュメントparseDouble()
のドキュメントでは、「DoubleクラスのvalueOfメソッドで実行されるように、指定されたStringで表される値に初期化された新しいdoubleを返します。
を使用する必要があります。
String str = "123.67";
double d = parseDouble(str);
あなたは、二重の値を取得します: コード例を参照してください。 StringToDoubleチュートリアルtutorialDataを参照してください。
そして、valueOf()メソッドはどうですか? – breceivemail
引数文字列sで表されるdouble値を保持するDoubleオブジェクトを返します。 – Rajshri
Double.parseDouble(String)
は、プリミティブdouble
タイプを返します。 Double.valueOf(String)
は、タイプDouble
のラッパーオブジェクトを返します。
したがって、例えばため.:
double d = Double.parseDouble("1");
Double d = Double.valueOf("1");
はまた、valueOf(...)
はオーバーロードされたメソッドです。parseDouble
一方
は、次のシグネチャを持つ単一の方法である:これは、2つの変異体を有する
TどちらもStringをdouble値に変換しますが、parseDouble()メソッドがプリミティブdouble値を返す場合、valueOf()メソッドはプリミティブdoubleをプリミティブdouble値を含むDoubleラッパークラスオブジェクトにさらに変換します。
Stringの値がプリミティブdoubleに変換できない場合、Stringからプリミティブdoubleへの変換でNFE(NumberFormatException)がスローされることがあります。
parseDouble()メソッドは(すべきは、いくつかの数値を含む)の文字列を初期化するために使用されている....それは戻り値がintのように、プリミティブデータ型である、フロート等
しかしのvalueOf( )は、Wrapperクラスのオブジェクトを作成します。ダブル値を得るには、それをアンラップしなければなりません。それはチョコレートと比較することができます。製造業者は、汚染を防ぐためにチョコレートを何らかの箔または紙で包みます。ユーザーはチョコレートを取り出し、ラッパーを取り出して投げ、それを食べる。
以下の変換を確認してください。
int k = 100; Integer it1 = new Integer(k);
intデータ型kは整数クラスを使用してオブジェクト、IT1に変換されます。 it1オブジェクトは、kがオブジェクトである必要がある場合はいつでもJavaプログラミングで使用できます。
次のコードを使用して、オブジェクトit1をアンラップ(Integerオブジェクトからintを戻す)することができます。
int m = it1.intValue();
System.out.println(m * m); // prints 10000
// intValue()は、intデータ型を返すIntegerクラスのメソッドです。
[Double.valueOf(s)対Double.parseDouble]の可能な複製(http://stackoverflow.com/questions/7255078/double-valueofs-vs-double-parsedouble) –
このリンクは閉じているため私の答えの複製: – breceivemail