原文: https://beginnersbook.com/2015/05/java-double-to-string/

java 教程中,我们将学习如何在 Java 中将double转换为字符串。我们可以通过多种方式进行此转换 -

  1. 使用String.valueOf(double)方法将double转换为字符串。
  2. 使用Double包装类toString()方法在 Java 中将double转换为字符串。
  3. 使用String.format()方法将double转换为字符串
  4. 使用DecimalFormat.format()double转换为字符串
  5. 使用StringBufferStringBuilder转换为字符串

1. 使用String.valueOf(double)方法将double转换为字符串

public static String valueOf(double d):我们可以通过调用String类的valueOf()方法将double原始类型转换为String。此方法返回double参数的字符串表示形式。

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. //double value
  4. double dnum = 99.9999;
  5. //convert double to string using valueOf() method
  6. String str = String.valueOf(dnum);
  7. //displaying output string after conversion
  8. System.out.println("My String is: "+str);
  9. }
  10. }

输出:

Java 程序:`double`到字符串的转换 - 图1

2. 使用Double包装类的toString()方法将double转换为字符串

public String toString( ):这是另一种可用于double转换为String的方法。此方法返回Double对象的字符串表示形式。此对象表示的原始double值将转换为字符串。

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. double dnum = -105.556;
  4. //double to string conversion using toString()
  5. String str = Double.toString(dnum);
  6. System.out.println("My String is: "+str);
  7. }
  8. }

输出:

Java 程序:`double`到字符串的转换 - 图2

3. 使用String.format()方法将double转换为字符串

String.format()方法可用于双字符串转换。

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. double dnum = -99.999;
  4. String str = String.format("%f", dnum);
  5. System.out.println("My String is: "+str);
  6. }
  7. }

输出:

Java 程序:`double`到字符串的转换 - 图3

我们可以使用这种方法调整字符串中的小数位数。例如:如果我们在字符串中只需要小数点后两位数,那么我们可以像这样更改代码:

  1. double dnum = -99.999;
  2. String str = String.format("%.2f", dnum);

此代码的输出将是:My String is: -100.00

这是因为这个方法的double值。

4. 使用DecimalFormat.format()double转换为字符串

String.format()方法类似。要使用它,我们必须在我们的代码中导入包:java.text.DecimalFormat

  1. import java.text.DecimalFormat;
  2. public class JavaExample{
  3. public static void main(String args[]){
  4. double dnum = -99.999;
  5. /* creating instance of DecimalFormat
  6. * #.000 is to have 3 digits after decimal point
  7. * in our output string
  8. */
  9. DecimalFormat df = new DecimalFormat("#.000");
  10. //conversion
  11. String str = df.format(dnum);
  12. //displaying output
  13. System.out.println("My String is: "+str);
  14. }
  15. }

输出:

Java 程序:`double`到字符串的转换 - 图4

5. 使用StringBufferStringBuilderdouble转换为字符串

我们也可以使用StringBufferStringBuilderdouble转换为String。两者的转换步骤相同。步骤如下 -

  1. 创建StringBuffer/StringBuilder实例
  2. 追加double
  3. StringBuffer/StringBuilder转换为String

double -> StringBuffer -> String

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. //double value
  4. double dnum = 89.891;
  5. //creating instance of StringBuffer
  6. StringBuffer sb = new StringBuffer();
  7. //appending the double value to StringBuffer instance
  8. sb.append(dnum);
  9. //converting StringBuffer to String
  10. String str = sb.toString();
  11. System.out.println("My String is: "+str);
  12. }
  13. }

输出:

  1. My String is: 89.891

double - > StringBuilder - > String

  1. public class JavaExample{
  2. public static void main(String args[]){
  3. //double value
  4. double dnum = -66.89;
  5. //creating instance of StringBuilder
  6. StringBuilder sb = new StringBuilder();
  7. //appending the double value to StringBuilder instance
  8. sb.append(dnum);
  9. //converting StringBuilder to String
  10. String str = sb.toString();
  11. System.out.println("My String is: "+str);
  12. }
  13. }

输出:

Java 程序:`double`到字符串的转换 - 图5