C printf(“%d”)返回异常数字

时间:2018-05-31 13:38:36

标签: c printf double

所以,我正在学习c,我正试图在我的一个程序中打印价格。价格应该是14.25,但是当我使用printf输出它时,由于某种原因它输出-305900456。这是我的代码......

$ docker image ls --format '{{ .Repository }} {{ .ID }}' | grep fedora | cut -d" " -f2
cc510acfcd70
5292e27c6dac
422dc563ca32

有人可以告诉我为什么这不会输出预期值。

1 个答案:

答案 0 :(得分:2)

这是因为当您使用"%d"时,您指示您的代码输出错误的数据类型。相反,你需要使用"%f"如果要输出double(带小数点的数字)。所以这是你的代码应该是什么样的:

#include <stdio.h>

int main() {
  double price = 14.25;
  printf("%f",price);
  return 0;
}

注意&#34;%f&#34;在代码中?这是输出double所必需的。如果你想输出一个没有小数的数字,你会使用&#34;%d&#34;。