JavaでdoubleをStringに変換する方法

今日は、Javaでdoubleを文字列に変換するさまざまな方法を見ていきます。 Javaのdoubleからstringへの変換は、多くの方法で行うことができます。それぞれの方法について、例のコードスニペットを一つ一つ見ていきましょう。

Java DoubleをStringに変換する

Java doubleをstringに変換するさまざまなコードスニペットを見てみましょう。 doubleはプリミティブデータ型であり、Doubleはオブジェクトです。しかし、Javaはオートボクシングをサポートしているため、ほとんどの場合、どちらも同じように使うことができます。

  1. +演算子を使用する

    これは、Javaでdoubleを文字列に変換する最も簡単な方法です。

    double d = 123.45d;
    String str = d+""; // strは '123.45'になります
    
  2. Double.toString()

    DoubleクラスのtoStringメソッドを使用して、小数点以下の表現でdoubleの文字列表現を取得できます。以下のコードスニペットは、それを使用してdoubleを文字列に変換する方法を示しています。

    double d = 123.45d;
    String str = Double.toString(d);
    System.out.println(str); //prints '123.45'
    
  3. String.valueOf()

    double d = 123.456d;
    String str = String.valueOf(d); // str is '123.456'
    
  4. new Double(double l)

    Java 9

    でdouble引数を持つDoubleコンストラクタは非推奨となりましたが、それを知っておくべきです。

    double d = 123.45d;
    // Java 9 から非推奨、パフォーマンスのために valueOf を使用してください
    String str = new Double(d).toString();
    System.out.println(str);
    
  5. String.format()

    プログラム内で、JavaのStringフォーマットメソッドを使用して、doubleをStringに変換することができます。

    double d = 36.98d;
    String s = String.format("%f", d);
    System.out.println(s); //36.980000
    
  6. DecimalFormat

    DecimalFormatクラスを使用して、doubleをStringに変換することができます。また、指定した小数点以下の桁数や、半端な数の丸めについても文字列表現を取得できます。

    double d = 123.454d;
    String str = DecimalFormat.getNumberInstance().format(d);
    System.out.println(str); //str is '123.454'
    //if you don't want formatting
    str = new DecimalFormat("#.0#").format(d); // 小数点以下2桁に丸める
    System.out.println(str); //str is '123.45'
    str = new DecimalFormat("#.0#").format(123.456); // 小数点以下2桁に丸める
    System.out.println(str); //str is '123.46'
    
  7. StringBuilder、StringBuffer

    StringBuilderとStringBufferのappend関数を使用して、doubleを文字列に変換できます。

    double d = 123.45d;
    String str = new StringBuilder().append(d).toString();
    

Java DoubleをStringに変換する例

以下は、すべての異なる方法を使用してdoubleを文字列に変換し、それを印刷する簡単なプログラムです。

package com.journaldev.string;

import java.text.DecimalFormat;

public class JavaDoubleToString {

	public static void main(String[] args) {
		double d = 123.45d;
		String str = Double.toString(d);
		System.out.println(str);

		str = String.valueOf(d);
		System.out.println(str);

		// Java 9 から非推奨となり、パフォーマンス向上のために valueOf を使用してください。
		str = new Double(d).toString();
		System.out.println(str);

		str = String.format("%f", d);
		System.out.println(str); //123.450000

		str = d + "";
		System.out.println(str);

		str = DecimalFormat.getNumberInstance().format(d);
		System.out.println(str);

		str = new DecimalFormat("#.0#").format(d);
		System.out.println(str);

		str = new StringBuilder().append(d).toString();
		System.out.println(str);
	}

}

Java プログラムで double を文字列に変換する方法は以上です。参考文献:Double API ドキュメント

Source:
https://www.digitalocean.com/community/tutorials/java-convert-double-to-string