title: Why Long double data type is working strange in my C code?
body: <p>I'm using Windows 10 and MinGW GCC compiler(not the mingw64 one), but when I try this code,
  This is my GCC version,</p>
  <pre><code>C:\Users\94768&gt;gcc -v
  Using built-in specs.
  COLLECT_GCC=gcc
  COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
  Target: mingw32
  Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw --with-mpfr --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --enable-libgomp --disable-libvtv --enable-nls
  Thread model: win32
  gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)
  </code></pre>
  <p>The code is,</p>
  <pre><code> #include &lt;stdio.h&gt;
  
   void main() {
  
      float a = 1.12345;
      double b = 1.12345;
      long double c = 1.12345;
      printf(&quot;float value is is %f\n&quot;, a);
      printf(&quot;double value is %lf\n&quot;, b);
      printf(&quot;long double value is %Lf\n&quot;, c);
  }
  </code></pre>
  <p>I got this output which is not what I expected, I don't understand what's the issue here, I am an absolute beginner to C programming.</p>
  <pre><code>float value is 1.123450
  double value is 1.123450
  long double value is -0.000000 
  </code></pre>
  <p>Immensely appreciate your guidance!</p>