1. Senior Member
Join Date
Nov 2010
Posts
167
Rep Power
8

system.out.printf versus system.out.format

Hello,

I am working on Numbers
and string manipulations and I don't understand why for the first half of the Math class, they use printf then format for the trigonometric methods. Is there an advantage to doing one versus the other?

Thank you!
Last edited by bigsonny; 06-21-2011 at 01:40 AM.

2. As far as I am aware format and printf do the same thing. Perhaps it depends upon who wrote the methods in the Math class.

3. Senior Member
Join Date
Nov 2010
Posts
167
Rep Power
8
A sample code would help:
From: Beyond Basic Arithmetic (The Java™ Tutorials > Learning the Java Language > Numbers and Strings)
printf:
Java Code:
```public class ExponentialDemo {
public static void main(String[] args) {
double x = 11.635;
double y = 2.76;

System.out.printf("The value of e is %.4f%n", Math.E);
System.out.printf("exp(%.3f) is %.3f%n", x, Math.exp(x));
System.out.printf("log(%.3f) is %.3f%n", x, Math.log(x));
System.out.printf("pow(%.3f, %.3f) is %.3f%n", x, y, Math.pow(x, y));
System.out.printf("sqrt(%.3f) is %.3f%n", x, Math.sqrt(x));
}
}```
format:
Java Code:
```public class TrigonometricDemo {
public static void main(String[] args) {
double degrees = 45.0;

System.out.format("The value of pi is %.4f%n", Math.PI);
System.out.format("The sine of %.1f degrees is %.4f%n", degrees,
System.out.format("The cosine of %.1f degrees is %.4f%n", degrees,
System.out.format("The tangent of %.1f degrees is %.4f%n", degrees,
System.out.format("The arcsine of %.4f is %.4f degrees %n",
System.out.format("The arccosine of %.4f is %.4f degrees %n",
System.out.format("The arctangent of %.4f is %.4f degrees %n",

}
}```

4. Senior Member
Join Date
Nov 2010
Posts
167
Rep Power
8
Originally Posted by Junky
As far as I am aware format and printf do the same thing. Perhaps it depends upon who wrote the methods in the Math class.
Oh sorry, I had not realized that you replied. Thanks. This seems redundant though. Is that the case for everything or is it just in the case that I am encountering right now?

5. What do you mean by "everything"? Are you asking are there methods that do the same thing throughout the API? Yes and no. There are a few methods that do the same or similar things but it is by no means prevalent. Why is this the case? I have no idea. I didn't work for Sun when they developed Java.

6. Senior Member
Join Date
Nov 2010
Posts
167
Rep Power
8
Sorry, I meant is it the case that format and printf do the same thing in every instance or are there differences that you are of that justifies their respective existence?

7. From the Java API

An invocation of this method of the form out.printf(l, format, args) behaves in exactly the same way as the invocation

out.format(l, format, args)

8. Moderator
Join Date
Feb 2009
Location
New Zealand
Posts
4,715
Rep Power
15
The println() and format() methods of PrintStream/Writer do differ in what they return. format() returns the stream, so that you can chain method calls together. In this regard the PrintStream/Writer format() allows the same style of code as the Formatter version.

9. Senior Member
Join Date
Nov 2010
Posts
167
Rep Power
8
Got it. Thank you very much.

Riffard

10. Here's the source to 'prove' the identical behaviour; (I ripped this from the src.zip file):

Java Code:
```    public PrintStream printf(String format, Object ... args) {
return format(format, args);```
kind regards,

Jos

11. Moderator
Join Date
Feb 2009
Location
New Zealand
Posts
4,715
Rep Power
15
Here's the source to 'prove' the identical behaviour
So you can ignore my reply #8. You live and learn! I had always thought they differed in what was returned - I guess I was thinking of println().

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•