This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
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 Android Security Essentials Live Lessons this week in the Android 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: 105


Why does this print 7.00 and not 07.00 ?


SCJP 6
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9291
    
  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: 105
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: 9291
    
  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...
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: printf question
 
Similar Threads
Need Help! How can I......
How To Sort Multiple Columns
How to make my class iterable?
Programming to interface but need access to implementation for persistence
Two public classes