小编Gol*_*lum的帖子

当printf中使用%d时,float变量会发生什么?

我想通过阅读来学习C C程序设计语言,第2版.我有一些编程经验,但没有C.

我目前在第1章.我有以下代码:


  float f;
  for (f = 0.0; f <= 3; f += 1.1)
      printf("A: %3f B: %6.2f\n", f, f + 0.15);
Run Code Online (Sandbox Code Playgroud)

它打印输出:

A: 0.000000 B:   0.15
A: 1.100000 B:   1.25
A: 2.200000 B:   2.35
Run Code Online (Sandbox Code Playgroud)

看起来很好.


现在我按如下方式更改printf:

printf("A: %3d B: %6.2f\n", f, f + 0.15);
Run Code Online (Sandbox Code Playgroud)

新的输出是

A:   0 B:   0.00
A: -1610612736 B:   0.00
A: -1610612736 B: -625777476808257557292155887552002761191109083510753486844893290688350183831589633800863219712.00
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?我希望浮点数转换为int,因为我使用了%d,但事实并非如此.另外,为什么价值B也出错?这里发生了什么事?

c floating-point printf

16
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

floating-point ×1

printf ×1