gpt4 book ai didi

c - 为什么 printf ("value: %f",10/2);输出 0.000000?

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:30 24 4
gpt4 key购买 nike

我知道整数运算会截断分数,但在这里它至少应该打印 5。为什么它打印 0.000000

最佳答案

printf 的调用具有未定义的行为,因为转换说明符 %f 不对应于表达式 10/2 的类型,这是 int。由于表达式 10/2 的两个操作数具有 int 类型,因此结果具有 int 类型,因为它是两个操作数。

至少使用 10.0/2。在本例中,表达式的类型为 double

或者使用转换说明符%d%i 输出整数表达式10/2

printf( "value: %d", 10 / 2 );

来自 C 标准(7.21.6.1 fprintf 函数)

9 If a conversion specification is invalid, the behavior is undefined.275) If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined.

关于c - 为什么 printf ("value: %f",10/2);输出 0.000000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56914162/

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