Java: 双打印 - println 或 printf
Java: print double - println or printf
假设我有以下代码:
double median = med(10.0, 12.0, 3.0); //method returns middle number as double
现在,我想写一条消息说明中位数。这可以使用 println() 来完成,如下所示:
System.out.println("Your number was " + median);
或者我必须使用具有双精度值的 printf() 吗?
我问的原因是因为我在网上看到了这两种做法 1,但是当我尝试使用 println() 时出现错误,除非我写:
System.out.println(median);
因此,您可以使用 println() 打印出 double 值和 strings ,还是必须为此目的使用 printf()?
You can do both (if System.out.println("Your number was " + median);
is not working you have something else wrong. Show us the stack trace). printf
allows you some more formatting options (such as the number of decimal places) without having to use a DecimalFormat
,但这是风格的选择,而不是其他。
就我个人而言,我发现字符串连接更容易维护。 %blah
在字符串中丢失,字符串连接错误是编译时错误,添加新变量需要更少的思考。但是我在这方面是少数。
printf
中的优点是您不需要构建一堆格式化程序,其他人发现它的格式在眼睛上更容易,并且当使用日志框架提供的类似 printf 的方法时,字符串构建只有在实际需要时才会发生。
double value = 0.5;
System.out.println("value: " + value);
System.out.printf("value: %f", value);
如果你想set a number of decimal places:
double value = 0.5;
// String concatenation
DecimalFormat df = new DecimalFormat("0.000");
System.out.println("value: " + df.format(value));
// printf
System.out.printf("value: %.3f", value);
当在一行中显示多个变量时,printf
方法特别有用,而使用字符串连接会很乏味:
println()
有时会令人困惑。 (虽然两者几乎在所有情况下都可以使用)。
double a = 10;
double b = 20;
System.out.println("a: " + a + " b: " + b);// Tedious string concatenation.
System.out.printf("a: %f b: %f\n", a, b);// Output using string formatting.
输出:
a: 10.0 b: 20.0
a: 10,000000 b: 20,000000
假设我有以下代码:
double median = med(10.0, 12.0, 3.0); //method returns middle number as double
现在,我想写一条消息说明中位数。这可以使用 println() 来完成,如下所示:
System.out.println("Your number was " + median);
或者我必须使用具有双精度值的 printf() 吗?
我问的原因是因为我在网上看到了这两种做法 1,但是当我尝试使用 println() 时出现错误,除非我写:
System.out.println(median);
因此,您可以使用 println() 打印出 double 值和 strings ,还是必须为此目的使用 printf()?
You can do both (if System.out.println("Your number was " + median);
is not working you have something else wrong. Show us the stack trace). printf
allows you some more formatting options (such as the number of decimal places) without having to use a DecimalFormat
,但这是风格的选择,而不是其他。
就我个人而言,我发现字符串连接更容易维护。 %blah
在字符串中丢失,字符串连接错误是编译时错误,添加新变量需要更少的思考。但是我在这方面是少数。
printf
中的优点是您不需要构建一堆格式化程序,其他人发现它的格式在眼睛上更容易,并且当使用日志框架提供的类似 printf 的方法时,字符串构建只有在实际需要时才会发生。
double value = 0.5;
System.out.println("value: " + value);
System.out.printf("value: %f", value);
如果你想set a number of decimal places:
double value = 0.5;
// String concatenation
DecimalFormat df = new DecimalFormat("0.000");
System.out.println("value: " + df.format(value));
// printf
System.out.printf("value: %.3f", value);
当在一行中显示多个变量时,printf
方法特别有用,而使用字符串连接会很乏味:
println()
有时会令人困惑。 (虽然两者几乎在所有情况下都可以使用)。
double a = 10;
double b = 20;
System.out.println("a: " + a + " b: " + b);// Tedious string concatenation.
System.out.printf("a: %f b: %f\n", a, b);// Output using string formatting.
输出:
a: 10.0 b: 20.0
a: 10,000000 b: 20,000000