gpt4 book ai didi

C printf 使用 %d 和 %f

转载 作者:太空狗 更新时间:2023-10-29 16:48:32 25 4
gpt4 key购买 nike

我正在研究这个程序,我注意到使用 %f 表示 double ,使用 %d 表示 float 给我一些完全不同的东西。有人知道为什么会这样吗?

int main ()
{
float a = 1F;
double b = 1;

printf("float =%d\ndouble= %f", a, b);
}

这是输出

float = -1610612736
double = 190359837192766135921612671364749893774625551025007120912096639276776057269784974988808792093423962875123204096.0000

最佳答案

%d 代表十进制,它需要一个 int 类型的参数(或一些较小的有符号整数类型,然后被提升)。浮点类型 floatdouble 都以相同的方式传递(提升为 double)并且它们都使用 %f。在 C99 中,您还可以使用 %lf 来表示 double 的较大尺寸,但这纯粹是装饰性的(请注意 scanf 不会发生任何提升这实际上有所作为)。

关于C printf 使用 %d 和 %f,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com