出现错误:格式指定类型为“ int”,但参数的类型为“ double”

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

这是非常简单的,我花了很多时间研究它,无法弄清它到底出了什么问题.

#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;
}

错误信息:

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.
最佳答案
在您的代码中,您需要进行更改

printf("EUR%.2d = USD%.2d" euro, dollar);

printf("EUR%.2f = USD%.2f", euro, dollar);

注意两个变化

>根据printf()语法的要求添加了.
>应该使用%f格式说明符打印双精度.使用错误的参数类型将调用undefined behaviour.

转载注明原文:出现错误:格式指定类型为“ int”,但参数的类型为“ double” - 代码日志