HitmanBBa's blog

By HitmanBBa, history, 2 years ago, In English,

Hi everyone.

I hope you're having a good day.

As you see in the picture when I read double using scanf "%lf" specifier it's ok, but when I'm trying to print double using printf "%lf" specifier, I got zero as result, but when I use "%f" floating-point specifier give me the right result, can any one help me with this problem and tell me why?

My IDE: Code::Blocks 13.12

My compiler: GNU GCC Compiler.

Thanks in advance :D

 
 
 
 
  • Vote: I like it  
  • +7
  • Vote: I do not like it  

»
2 years ago, # |
  Vote: I like it +6 Vote: I do not like it

Can I know why downvotes !!!

If you don't know the answer just ignore it.

»
2 years ago, # |
Rev. 4   Vote: I like it 0 Vote: I do not like it

Read this page link

Because C will promote floats to doubles for functions that take variable arguments. Pointers aren't promoted to anything, so you should be using %lf, %lg, %le or %la (C99) to read in doubles.

  • »
    »
    2 years ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    I see many codes uses "%lf" specifier for printing, not "%f" but why printf("%lf", x); don't work??

»
6 days ago, # |
  Vote: I like it -45 Vote: I do not like it

Welcome to printing.com, the home of low cost, hi-definition print with beautiful design from local printing.com studios. Leaflet printing