我是 c 的新手,我正在尝试使用 double 变量。不幸的是,编译器 (Code::Blocks) 似乎完全忽略了我正在写的内容。
#include<stdio.h>
int main()
{
double x=1.03;
printf("x: %lf",x);
return 0;
}
输出是:
x: 0.000000
问题是什么?
最佳答案
使用 %f
而不是 %lf
。 double 只需要%f
;参见“说明符”表 here .
如果 printf
正在寻找比您提供的更大的值,则打印出来的内容将受到您提供的 x
参数附近内存中发生的内容的影响.在这种情况下,我猜是 0
。
编辑:感谢@Olaf 指出 specification说 %lf
应该工作得很好。显然,OP 的编译器或编译器版本是非标准的。或者,也许项目设置正在选择非标准的编译器行为。 (我想 printf
的编译器或库实现也可能有问题。)
关于c - 输出与 c 中的代码不匹配(双变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33599564/