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
双精度
值在转换为字符串
时,永远不会是整数
。它将始终包含小数
如果要向控制台打印双精度as23
,可以将其转换为Int
:
System.out.println((int) yourDouble);
双精度
值在转换为字符串
时,永远不会是整数
。它将始终包含小数
如果要向控制台打印双精度as23
,可以将其转换为Int
:
System.out.println((int) yourDouble);
双精度
值在转换为字符串
时,永远不会是整数
。它将始终包含小数
如果要向控制台打印双精度as23
,可以将其转换为Int
:
System.out.println((int) yourDouble);
双精度
值在转换为字符串
时,永远不会是整数
。它将始终包含小数
如果要向控制台打印双精度as23
,可以将其转换为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