title: Multiplying long double gives weird output
body: <pre><code>long double i, j, ans;
  scanf("%Lf %Lf", &amp;i, &amp;j);
  ans=i*j;
  printf("%Lf %Lf", ans, i*j);
  
  i/p -&gt; 1 1
  o/p -&gt; -2.000000 -2.000000
  expected o/p -&gt; 1.000000 1.000000
  </code></pre>
  
  <p>Please explain this behaviour, and where is it going wrong and how can we come over it?
  If the o/p appx to close to 1 also acceptable.</p>
  
  <p>FYI: long double format specifier I tried Lf, lf, LF and llf according to other StackOverflow post.</p>