这是为什么,加个.0,就不一样了啊。大佬,救命,自学c语言太难了。
一个是整数除法,结果会被截断为整数,另一个是浮点数除法C语言/C++ 中除法得到结果的精度问题(有浮点数参与除法,结果就是浮点数,除数和被除数都是整数,结果默认是整数)_deniece1的博客-CSDN博客 总结:1.当除数或者被除数之一(只要有一个)是浮点数(或double),进行的就是浮点数除法,会把另一个除数或者被除数转换为精度更高的进行除法(例如int转为float,float转为double)结果为浮点数(或double)例如float/int 或者int/float,结果都是float2.当除数和被除数都是int类型时,即使结果定义为float类型,显示的结果值也是整数验证的小例子... https://blog.csdn.net/deniece1/article/details/102136471有帮助望采纳
在C语言中,3/2这个计算式,编译器会把3和2认为是int类型,结果也默认与3和2的类型一致,所以会有一个类型转换,1.5转int,结果就是1。但是如果是3.0/2.0或者3.0/2或者3/2.0,编译器会把类型提升为浮点型,等式变成浮点数数计算(小数计算),会保留计算后的小数点,所以结果不一样。