Java 双值格式?

Java 双值格式?,java,Java,我有以下代码行: DecimalFormat df = new DecimalFormat("#.##"); System.out.println(df.format(23.00)); System.out.println(Double.parseDouble(df.format(23.00d))); System.out.println(df.parse("23.00").doubleValue()); 第一行打印23,但在第二行和第三行,当我将其转换为双行时,它打印23.0。显示23.0

我有以下代码行:

DecimalFormat df = new DecimalFormat("#.##"); 
System.out.println(df.format(23.00));
System.out.println(Double.parseDouble(df.format(23.00d)));
System.out.println(df.parse("23.00").doubleValue());
第一行打印
23
,但在第二行和第三行,当我将其转换为双行时,它打印
23.0
。显示
23.0
没有任何意义

如何获得
double
23


我在第二行和第三行中检查了这些

,您只是有效地使用了
Double.toString
。一个
double
值不记得它刚开始被解析成什么格式——它只是一个数值

如果要以特定方式格式化值,请使用第一行中的
df.format
。例如:

String text = ...; // Wherever you get the text from
double value = Double.parseDouble(text);
String formatted = df.format(value); // Using the df you set up before

在第二行和第三行输出中,您只是有效地使用了
Double.toString
。一个
double
值不记得它刚开始被解析成什么格式——它只是一个数值

如果要以特定方式格式化值,请使用第一行中的
df.format
。例如:

String text = ...; // Wherever you get the text from
double value = Double.parseDouble(text);
String formatted = df.format(value); // Using the df you set up before

在第二行和第三行输出中,您只是有效地使用了
Double.toString
。一个
double
值不记得它刚开始被解析成什么格式——它只是一个数值

如果要以特定方式格式化值,请使用第一行中的
df.format
。例如:

String text = ...; // Wherever you get the text from
double value = Double.parseDouble(text);
String formatted = df.format(value); // Using the df you set up before

在第二行和第三行输出中,您只是有效地使用了
Double.toString
。一个
double
值不记得它刚开始被解析成什么格式——它只是一个数值

如果要以特定方式格式化值,请使用第一行中的
df.format
。例如:

String text = ...; // Wherever you get the text from
double value = Double.parseDouble(text);
String formatted = df.format(value); // Using the df you set up before

双精度
值在转换为
字符串
时,永远不会是
整数
。它将始终包含
小数

如果要向控制台打印双精度as
23
,可以将其转换为
Int

System.out.println((int) yourDouble);

双精度
值在转换为
字符串
时,永远不会是
整数
。它将始终包含
小数

如果要向控制台打印双精度as
23
,可以将其转换为
Int

System.out.println((int) yourDouble);

双精度
值在转换为
字符串
时,永远不会是
整数
。它将始终包含
小数

如果要向控制台打印双精度as
23
,可以将其转换为
Int

System.out.println((int) yourDouble);

双精度
值在转换为
字符串
时,永远不会是
整数
。它将始终包含
小数

如果要向控制台打印双精度as
23
,可以将其转换为
Int

System.out.println((int) yourDouble);

当你说
double
时,如果你的号码是
23
,它会显示
23.0
,因为它是
double

如果您的意思是用两位数字打印
int
值,则可以使用
System.out.printf(“%.2d”,数字)


这次我的系统上没有任何Java编译器来测试这一点,但我认为这是真的。

当你说
double
如果你的数字是
23
,它会显示
23.0
,因为它是
double

如果您的意思是用两位数字打印
int
值,则可以使用
System.out.printf(“%.2d”,数字)


这次我的系统上没有任何Java编译器来测试这一点,但我认为这是真的。

当你说
double
如果你的数字是
23
,它会显示
23.0
,因为它是
double

如果您的意思是用两位数字打印
int
值,则可以使用
System.out.printf(“%.2d”,数字)


这次我的系统上没有任何Java编译器来测试这一点,但我认为这是真的。

当你说
double
如果你的数字是
23
,它会显示
23.0
,因为它是
double

如果您的意思是用两位数字打印
int
值,则可以使用
System.out.printf(“%.2d”,数字)



这次我的系统上没有任何Java编译器进行测试,但我认为这是真的。

23
23.0
是一样的。如果要在不使用
.0
的情况下打印,请使用第一行中的格式字符串。
23
不是
double
23
是一个整数
23.00
是一个
double
。如果第一行打印您想要的格式,为什么要将输出解析为double并显示double?不清楚您试图解决什么问题,因为答案在您的问题中。在第二行和第三行中,您正在将其转换回double(以前是字符串),因此Java将像往常一样打印它们。您已经拥有该值。在最后两行中,您没有按照自己的意愿格式化值,只是使用了
System.out.println(double x)
,默认情况下,它会输出
double.toString(double d)
实现所描述的值。您到底想要什么?打印为
23
,就像您在第一行中所做的那样,或者打印为
23.00
23
23.0
是一样的。如果要在不使用
.0
的情况下打印,请使用第一行中的格式字符串。
23
不是
double
23
是一个整数
23.00
是一个
double
。如果第一行打印您想要的格式,为什么要将输出解析为double并显示double?不清楚您试图解决什么问题,因为答案在您的问题中。在第二行和第三行中,您将其转换回double(以前是字符串),因此Java将只打印一个double