C++ 当我试图显示1,1/2,1/3的浮点值时,我一直得到1输出。。。。。1/n。我该如何解决这个问题?

C++ 当我试图显示1,1/2,1/3的浮点值时,我一直得到1输出。。。。。1/n。我该如何解决这个问题?,c++,C++,当我试图显示1,1/2,1/3的浮点值时,我一直得到1输出。。。。。1/n。如何解决此问题?虽然总和是浮点型,但I不是。通过执行1/i您正在执行int/int除法,这显然是四舍五入 发生的事情是:1/1+1/2+…+1/n=1+0+…+0=1 您可以通过强制转换或更改i的类型来解决此问题 一个简单的解决方案可以是: sum = sum + ((float)1 / i); 甚至: sum = sum + (1.0/i); 请编辑您的问题并以文本形式发布代码。我们自己也无法在图像中尝试代码,我们


当我试图显示1,1/2,1/3的浮点值时,我一直得到1输出。。。。。1/n。如何解决此问题?

虽然
总和
是浮点型,但
I
不是。通过执行
1/i
您正在执行
int/int
除法,这显然是四舍五入

发生的事情是:
1/1+1/2+…+1/n
=
1+0+…+0
=1

您可以通过强制转换或更改
i
的类型来解决此问题
一个简单的解决方案可以是:

sum = sum + ((float)1 / i);
甚至:

sum = sum + (1.0/i);

请编辑您的问题并以文本形式发布代码。我们自己也无法在图像中尝试代码,我们也无法将其复制到答案中,而且它不会出现在未来的谷歌搜索中。请参阅:听起来您在使用
int
,而您应该使用
double
。这是否回答了您的问题?或者是的,谢谢!