gcc 9.3.0 printf %Lf 输出不正确

问题描述

printf("%Lf",long double) 将输出截断为 double。还是我做错了什么?

Gcc 9.3.0 Ubuntu 20.04.2,Linux 5.8.0-59-generic

printf("print m_pi  %.45f\n",M_PI);
printf("print m_pil %.45LF\n",M_PIl);
printf("maple Pi    3.141592653589793238462643383279502884197\n");
printf("m_pil def   3.141592653589793238462643383279502884L\n");

输出:

print m_pi  3.141592653589793115997963468544185161590576172
print m_pil 3.141592653589793238512808959406186204432742670
maple Pi    3.141592653589793238462643383279502884197
m_pil def   3.141592653589793238462643383279502884L

似乎 gcc printflong double 截断为 13 位 +-。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)