2021年4月7日星期三

long double is printed incorrectly in CodeBlocks using MinGW/long double

The problem:

My code work's fine using Cygwin (long double is printed like having 16 bytes of memory, and the min and max values are ok), but using MinGW the CodeBlocks say long double have 12 bytes of memory (if I modify the code to show the size in int instead long double, in long double is -2,000000), and the min and max values it's printed like -0,000000 both.

Codeblocks version: 20.03.
MinGW-W64 project (version 8.1.0, 32/64 bit, SEH).

I tried with the prompt but, is the same thing!

I saw in a post that this problem is generated by windows, but if it works with Cygwin, then there is a solution that maybe someone somewhere knows...

Observation:

I can use Cygwin, but Portuguese has so many accented words, and I use them to name my directories, so when I use Cygwin the things are complicated, and I don't know how can I include some libs like conio.h correctly, and the MinGW has included libs like conio.h so I prefer to learn how to resolve this problem.

#include <stdio.h>  #include <math.h>    int main()  {  // Declaration of variables  long double min, max, size;    // Size  size = sizeof(long double);    // Min and Max  min = pow(2, (sizeof(long double)*8))*(-1);  max = pow(2, (sizeof(long double)*8));    // Print of results  printf("Size of long double: %Lf\n", size);  printf("Min of long double: %Lf\n", min);  printf("Max of long double: %Lf\n", max);    // end of main  return(0);  }    

In mingw: [1]: https://i.stack.imgur.com/DiN5p.png

In cygwin: [2]: https://i.stack.imgur.com/lHW32.png

Sorry about my English... I tried XD!

https://stackoverflow.com/questions/66996900/long-double-is-printed-incorrectly-in-codeblocks-using-mingw-long-double April 08, 2021 at 11:19AM

没有评论:

发表评论