这是我的代码无效:
Scanner hello = new Scanner (System.in);
double a = 10;
double c;
System.out.print("Enter the value: ");
c = hello.nextDouble();
double f = a + c;
System.out.printf("The sum of 10 plus user entry is : ", a+c);
没有语法错误,没有显示错误,结果如下: 输入值:100 10加上用户输入的总和是:
因此,对于命令(a + c),在程序中没有第二行,,,但如果我在(a + c)命令之前使用'%。2f',它可以正常工作, 喜欢:
System.out.printf("The sum of 10 plus user entry is : %.2f", a+c);
我试图搜索'%。2f',但知道它仅用于确定以下数字是否显示为带有两位小数的数字。 (有点圆了,我猜)..
我完全是Java的新手。现在开始在大学学习。只是好奇地知道这个概念和原因背后的原因,为什么这个程序只能用'%.2f'键入它,而不是没有它,虽然它没有显示任何错误。如果有人能回答它会很棒。谢谢: - )
答案 0 :(得分:2)
Java的System.out.printf()
方法不附加信息;它取而代之。 '%。2f'表示:“将其替换为下一个参数,并将其转换为2位精确的浮点数。”删除'%。2f'意味着a+c
无处可去,而printf()
会丢弃它。
由于Java的System.out.printf()
方法实际上是基于C / C ++中的printf()
,因此您可能需要查看this指南。
答案 1 :(得分:0)
您使用的功能错误。 你应该使用
System.out.println(myString)
或者
System.out.print(myString)
您可以将代码格式化为
System.out.println(myExplinationString + a+c)
答案 2 :(得分:0)
System.out
是java.io.PrintStream
类的一个实例,它作为System
类的静态字段提供。 printf(String format, Object... args)
是PrintStream
类的方法之一,请检查此Oracle tutorial on formatting numbers。简而言之,第一个参数是一个格式字符串,它可以包含纯文本和格式说明符,例如%.2f
,适用于下一个参数。所有格式说明符都在java.util.Formatter
类的描述中进行了解释。请注意,double
值为autoboxed到Double
。