说明:内容来源于网络,非原创。(侵删,笔记是从 word 中转移过来,链接找不到了)
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出
print就是一般的标准输出,但是不换行
println和print基本没什么差别,就是最后会换行
print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
printf是格式化输出的形式。参照JAVA API的定义如下:
'd' 整数结果被格式化为十进制整数
'o' 整数结果
'x', 'X' 整数结被格式化为八进制整数果被格式化为十六进制整数
'e', 'E' 浮点结果被格式化为用计算机科学记数法表示的十进制数
'f' 浮点结果被格式化为十进制数
'g', 'G' 浮点根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
'a', 'A' 浮点结果被格式化为带有效位数和指数的十六进制浮点数
“ i的值为%d, j的值为%f ” 这个字符串中的 "%d" 变为i的值了,而 "%f" 变为了j的值了!
这里,"%d" 的意思是一个int值的占位符,"%f" 为一个double 或float值的点位符,这个变量的参数在后面提供。
注意的是实参名必须按顺序排。不然就会错了。而且类型也要相符。
如果我们把语句改为System.out.printf(" i的值为%d,j的值为%f ", j, i);//i和j位置反了
这时就有错了因为 "%d" 对应的参数变为 j,"%f" 对应的变为 i 了,而 j 是double的,与 "%d" 是 int 型的不一致。所以有错了
还有"%s"是一个字符串值的点位符的意思。"%c"是一个字符值的点位符的意思。
可能读者还会问为什么j输出变成了5.000000?那是因为double是默认有6位小数的(这个可能和系统电脑有关,有的不是6位吧)但是如果你想
只要输出两位小数行不行?可以啊!只要改下语句就行了!
System.out.printf("i的值为%d,j的值为%.2f", i,j);
这里的"%.2f"的意思是输出两位小数点。如果想输出三位那就"%.3f"
其它更详细的内容:https://blog.csdn.net/qq_40794973/article/details/88580738