简体   繁体   中英

Having issue with a very simple java program, not displaying proper result

here is my code that isn't working:

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);

No syntax error whatsoever, no error displayed, this is the result : Enter the value: 100 The sum of 10 plus user entry is :

So there is no result in the second line,,, for the command ( a+c ) as in program. But if i use a ' %.2f ' before ( a+c ) command, it works fine,, like :

System.out.printf("The sum of 10 plus user entry is : %.2f", a+c);

I tried to search about the '%.2f' but got to know it is used just to ascertain that the following number is to be displayed as a number with two decimal places. (kinda round off thing, i guess)..

I'm totally a rookie at Java. Started studying it at college right now. Was just curious to know about this concept and reason behind why this program worked only with the '%.2f' typed in it, and not without it, although it showed no error. Will be great if someone can answer it. thanks :-)

Java's System.out.printf() method doesn't append information; it substitutes it. The '%.2f' means: "Replace this with the next argument, and convert it to a floating-point number 2 places precise." Removing the '%.2f' would mean that a+c would have nowhere to go, and printf() would discard it.

Since Java's System.out.printf() method is actually based on the printf() from C/C++, you might want to check out this guide.

You are using the wrong function. You should be using

System.out.println(myString)

Or

System.out.print(myString)

You would format your code as

System.out.println(myExplinationString + a+c)

System.out is an instance of java.io.PrintStream class that is provided as a static field of the System class. printf(String format, Object... args) is one of the methods of the PrintStream class, check this Oracle tutorial on formatting numbers . In brief, the first argument is a format string that may contain plain text and format specifiers, eg %.2f , that are applied to the next argument(s). All format specifiers are explained in the description of the java.util.Formatter class. Note, that double value is autoboxed to Double .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM