CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

float printf() problem (Solved)

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
mglsoft



Joined: 18 Feb 2008
Posts: 48

View user's profile Send private message

float printf() problem (Solved)
PostPosted: Sat Aug 25, 2012 9:08 pm     Reply with quote

The statement printf () does not work correctly if I try to send a float in this format:
% 02.2f
if the value to be displayed is 2.02, the value sent by printf () is 2.02, when the expected value is 02.02

The only way to send the cipher is using this format:
% 02.0f
But it does not help me as I need to send the data in whole and decimal positions 00.00.

Can someone explain what would be the solution?

I tried it with the 4.124 version and also in the 4.134 version, with the same result, not to do to solve it ...
_________________
MGLSOFT


Last edited by mglsoft on Sun Aug 26, 2012 12:40 pm; edited 1 time in total
Ttelmah



Joined: 11 Mar 2010
Posts: 19348

View user's profile Send private message

PostPosted: Sun Aug 26, 2012 1:22 am     Reply with quote

You are misunderstanding the printf command (as do a lot of people). The number in front of the decimal, when printing, is _not_ the number of digits in front of the decimal in the result, but the _total output width_. So you are telling the command to give a leading zero (correct), in a field 2 digits wide, with two digits after the decimal point in the result. This means the number will always be overloading the field width.

The decimal point is also counted as an output character, so the correct syntax for two digits after the decimal, and two digits in front, with leading zeros, is:

"%05.2f"

This is standard C, and is very commonly 'got wrong'...

Best Wishes
mglsoft



Joined: 18 Feb 2008
Posts: 48

View user's profile Send private message

Float Printf() now OK !!
PostPosted: Sun Aug 26, 2012 8:15 am     Reply with quote

I tell the truth, I did not expect such a quick response and accurate.
Whenever I read the help and manuals CCS compiler, and as much as I reread, I find that this explained so well and with so few words, on how to format output printf () in the way you already.

Thank you very much for your help, as it has saved my programming day.
I will be careful when a query you, to try to return this attention, but I suspect that their level of knowledge about C is well above the average of the forum, and is also well above the mine.

It is a pleasure to learn from someone like you, who also allowed to provide this knowledge to others.

It is tested and works properly.
Thank you very much.

Thanks Google for the translation from the Spanish.
_________________
MGLSOFT
Ttelmah



Joined: 11 Mar 2010
Posts: 19348

View user's profile Send private message

PostPosted: Sun Aug 26, 2012 11:37 am     Reply with quote

Thank you.
Flag the thread as 'solved'.

Best Wishes
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group