获取错误:format指定类型'int'但参数的类型为'double'

Éan*_*rty 2 c printf

我不知道为什么这不会编译.任何的想法?

这是非常直接的,我花了很长时间看着它,无法弄清楚它有什么问题.

#include <stdio.h>
#include <stdlib.h>

void euroToDollar(double euro);

int main() {
    double europrice1 = 1.00;

    euroToDollar(europrice1);
    return 0;
}

void euroToDollar(double euro){

    double dollar = euro * 1.11;

    printf("EUR%.2d = USD%.2d" ,euro, dollar);
    return;
}
Run Code Online (Sandbox Code Playgroud)

错误消息:

Basic.c:24:39: error: format specifies type 'int' but the argument has type
  'double' [-Werror,-Wformat]
printf("EUR%.2d = USD%.2d" ,euro, dollar);
                     ~~~~         ^~~~~~
                     %.2f
 2 errors generated.
Run Code Online (Sandbox Code Playgroud)

Sou*_*osh 6

在您的代码中,您需要更改

printf("EUR%.2d = USD%.2d" euro, dollar);
Run Code Online (Sandbox Code Playgroud)

printf("EUR%.2f = USD%.2f", euro, dollar);
Run Code Online (Sandbox Code Playgroud)

注意两个变化

  1. ,根据printf()语法的要求添加了.
  2. double应使用%f格式说明符打印.使用错误类型的参数会调用 未定义的行为.