#初学小白提问,求大佬解答,提前感谢:
为什么我按照图一运行出来的h就是对的?而按照图二运行出来就出h就为0?我自己考虑的是浮点数问题,之前为int的时候,将1/2读成0了,我便改成double,但还是出错了。


#初学小白提问,求大佬解答,提前感谢:
为什么我按照图一运行出来的h就是对的?而按照图二运行出来就出h就为0?我自己考虑的是浮点数问题,之前为int的时候,将1/2读成0了,我便改成double,但还是出错了。


volcano_7d2 晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
在C++中,除法运算符/对于两个整数类型的操作数会执行整数除法,即只保留计算结果的整数部分。因此,当你使用1/2时,结果将会是0。
为了得到正确的结果,你可以将其中一个操作数转换为浮点数类型,这样就会执行浮点数除法。你可以使用以下任一种方法:
1.0 / 2,这样结果将会是0.5。(double)1 / 2,这样结果也会是0.5。1和2为浮点数类型,例如:double x = 1, y = 2; x / y,这样结果同样为0.5。请注意,在进行浮点数除法时,可能会存在精度误差。如果你需要一个精确的结果,请考虑使用浮点数比较方法,例如使用特定的精度范围来判断两个浮点数是否相等。
声明浮点数变量时,需要使用浮点数类型,例如double h = 1.0 / 2;。
希望这可以帮助到你。如果你还有其他问题,请随时提问。