c语言1⼀2为什么输出0啊

printf("%f",1/2);不是0.5吗,float有小数啊
2025-04-01 09:34:39
推荐回答(5个)
回答1:

1和2都是整形数,1除以2的0.5,但是他会默认将结果转为整形,就是0,输出的时候是float型,所以将结果0转换为float型,就是0.00000。
要想输出0.5,在1/2前加上强制转换(float)

回答2:

因为你的被除数是1,是一个int类型的数,输出结果也是一个int类型的,这里就是零的;如果要输出的是0.5,那你就要把1改为1.0,这样被除数就是一个float类型的数了,输出结果也将是一个float类型的数。希望能帮到你!

回答3:

1/2是按整形计算的,不足1的哪怕就是0.9,都截为0.想输出0.5,写成1.0/2.0,或1.0/2,或1/2.0,就是后面两种不太规范,属于系统自动转换的

回答4:

C语言中 整数与整数作除法时有 “趋零”
就是 6/4 ,在C中得出的结果是1,而不是1.5
最后的结果取的是比原来小的整数

LZ 所说的 1/2 计算结果已经是0,即使数据类型 是float

回答5:

因为1/2是整数的除法,结果是整数,所以为0的,你要得到小数的话,改为1.0/2就好啦