aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes printf question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "printf question" Watch "printf question" New topic
Author

printf question

ujjawal rohra
Ranch Hand

Joined: Mar 20, 2010
Posts: 103


Why does this print 7.00 and not 07.00 ?


SCJP 6
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9280
    
  17

In 02.2, as you know 0 is for filling 0s when the number is less than the minimum size. 2.2 means that the minimum length of the number must be 2 (2.2) and there must be 2 digits after the decimal point (2.2). So here there is no restriction that there must be 2 digits before the decimal point. Try 04.2 to see the result...


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
ujjawal rohra
Ranch Hand

Joined: Mar 20, 2010
Posts: 103
Dear Ankit
I am sorry i didnt understand.You are saying that 02 is for filling up the space with zeroes when the number is less
than 2 digits. It is 7 in this case which means it is smaller than 2 digits so it must be padded with 0s.
Also, 04.2 also prints 7.00.
Please clarify
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9280
    
  17

Also, 04.2 also prints 7.00.

Yes sorry I forgot about the decimal point. 05.2 will give you 07.00 output.

The thing is, when you say 03.2 (I'm using a different value to make it easier to understand), you are indicating that the number must span at least 3 digits. This includes the number before the decimal point, the decimal point itself and the numbers after the decimal point. Since we have 2 digits after the decimal point, so the length already is more than the minimum length of the number.

Lets say I write printf("%08.2f",new Double(7)), here I want to print the number 7 with 2 digits after the decimal point and I want it to span at least 8 digits. So the output will be 00007.00 which as you can see spans 8 digits...
 
jQuery in Action, 2nd edition
 
subject: printf question
 
Similar Threads
Two public classes
Need Help! How can I......
Programming to interface but need access to implementation for persistence
How to make my class iterable?
How To Sort Multiple Columns