c - 输出与 c 中的代码不匹配(双变量)

标签 c double output

我是 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/

相关文章:

C - bool 表达式求值器

c - 后缀列表中的内存有效搜索

date - 什么是小数秒?

c# - 正则表达式 + 在模式中包含一个空格

c# - 无法从 pg_dump.exe 命令行退出

c++ - C vs C++ switch 语句变量定义 vs 声明

C 编译器错误

c# - 从 double 转换为十进制

java - 为什么不能将 double 值转换为 Byte 对象?

mysql - 如何抑制单个 SQL 语句的列标题输出?