c - 什么时候在 C 中使用 %d 和 %f?

标签 c floating-point printf double

我是 C 编程的新手,但在 Java 方面还不错,我的问题是我们什么时候使用 %d 和 %f?在什么情况下?例如,根据下面给出的代码块,如果我被要求取 (int)a*(float)y,我是将它取为 %d 还是 %f?

#include <stdio.h>

int main()
{
    int a = 2;
    float y= 1.5;
    printf("%d \n", a*y);  //do I take this?
    printf("%f", a*y);    //do I take this?
    return 0;
}

输出:

745417384
3.000000

最佳答案

对于 printf%d 期望其对应的参数具有类型 int,其中 %f 期望它具有类型 floatdouble

涉及 intfloat 的算术表达式的结果将是 float,因此您需要使用 % f 在这种情况下。

关于c - 什么时候在 C 中使用 %d 和 %f?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55323657/

相关文章:

c - 为什么我可以读取 3 个结构,但只分配 2 个?

c - 为什么当 current->next == NULL 时 current = current->next 会出现段错误?

创建有问题的二维数组 (C)

c - 提高代码的速度效率

java - 0 和 0. 在 Java 中有什么区别?

c++如何检查数组中的-1.#IND

matlab - IEEE754在MATLAB中的详细实现?

c - 在输出中看不到execl之前打印

bash - 对交互式脚本使用 yes 会导致退出代码 141

c -\c 转义序列在 man 中列出但在 C 中未知