gpt4 book ai didi

c - 为什么 1/2 in c = -2010232232?

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

我有一个非常简单的 C 程序。

int main(void){

double sum = 1/2;

printf("%d\n", sum);

return 0;

}

为什么它会返回一个像“-2030243223”这样的数字?

为什么每次运行程序时这个数字都会改变?

我尝试过使用 int 和 float,但我似乎无法将输出设为 0.5!?

最佳答案

使用%f 打印double,而不是%d。后者会导致未定义的行为

此外,表达式 1/2 使用整数除法得到 0,因此要得到 .5,请使用 1/2 .(注意尾随句点)。

最后,要实际得到 .5 而不是像 0.500000 这样的东西,请指定精度:

printf("%.1f\n", sum);

关于c - 为什么 1/2 in c = -2010232232?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272095/

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