输出与 c 中的代码不匹配(双变量)
Output not match the code in c (double variable)
我是 c 的新手,正在尝试使用双精度变量。不幸的是,编译器 (Code::Blocks) 似乎完全忽略了我正在写的内容。
#include<stdio.h>
int main()
{
double x=1.03;
printf("x: %lf",x);
return 0;
}
输出为:
x: 0.000000
有什么问题?
使用 %f
而不是 %lf
。双打只需要%f
;看到 "specifiers" table here.
如果 printf
正在寻找比您提供的更大的值,打印出来的内容将受到您提供的 x
参数附近内存中碰巧的内容的影响。在这种情况下,我猜是 0
.
编辑:感谢@Olaf 指出 specification 说 %lf
应该可以正常工作。显然,OP 的编译器或编译器版本是非标准的。或者,也许项目设置正在选择非标准的编译器行为。 (我想 printf
的编译器或库实现也可能有问题。)
我是 c 的新手,正在尝试使用双精度变量。不幸的是,编译器 (Code::Blocks) 似乎完全忽略了我正在写的内容。
#include<stdio.h>
int main()
{
double x=1.03;
printf("x: %lf",x);
return 0;
}
输出为:
x: 0.000000
有什么问题?
使用 %f
而不是 %lf
。双打只需要%f
;看到 "specifiers" table here.
如果 printf
正在寻找比您提供的更大的值,打印出来的内容将受到您提供的 x
参数附近内存中碰巧的内容的影响。在这种情况下,我猜是 0
.
编辑:感谢@Olaf 指出 specification 说 %lf
应该可以正常工作。显然,OP 的编译器或编译器版本是非标准的。或者,也许项目设置正在选择非标准的编译器行为。 (我想 printf
的编译器或库实现也可能有问题。)