【发布时间】:2021-10-20 22:23:03
【问题描述】:
我写的代码如下
#include <stdio.h>
int main()
{
long double var = 3.1415926535;
printf("%.6Lf", var);
}
代码的输出是 0.000000。根据我的输出应该是 3.141592。请说出我做错了什么。
【问题讨论】:
-
由于代码是正确的,因此很难复制问题。你确定你构建了你展示的确切代码吗?你如何建造它?在什么环境下?什么编译器(名称和版本)?
-
试试他的:
printf("version %s %s -- %.6Lf\n", __DATE__, __TIME__, var);并检查您正在运行的版本是否实际上是您编译的版本(几秒钟前的日期和时间)。 -
@pmg 它显示的版本是 2021 年 8 月 19 日 13:46:26 -- 0.000000。
-
为什么不呢?很明显,您需要使用
__mingw_printf(),因为printf()使用无法打印long doubles 的Microsoft 库。阅读所有答案,尤其是this one!
标签: c variables debugging floating-point output