谁能告诉我为什么我执行这个代码后输出是0.5的,我想计算0.5+0.5^2+0.5^3+...+0.5^n 我用的是c#
答案:3 悬赏:70 手机版
解决时间 2021-01-17 21:31
- 提问者网友:浩歌待明月
- 2021-01-17 00:36
谁能告诉我为什么我执行这个代码后输出是0.5的,我想计算0.5+0.5^2+0.5^3+...+0.5^n 我用的是c#
最佳答案
- 五星知识达人网友:孤老序
- 2021-01-17 01:10
sum = 0;
你干嘛每循环一次都要把sum归零啊?前面的不白加了么.
把循环里的sum=0去掉。
或者你先等比求和,然后直接输出
result.Text = (1.0 - Math.Pow(0.5, a)).ToString()
这样也可以。追问谢谢你,下面的可以了,但下面是将0.5改成(1/2)不行是什么问题呢
Double sum=0;
Int32 n;
n = Convert.ToInt32(TextBox4.Text);
for (int a=1; a<=n; a++)
{
Double S;
S = Math.Pow(0.5, a);//为什么改成S = Math.Pow((1/2), a);就不行呢
sum = sum + S;
}
result.Text = Convert.ToString(sum);追答因为是整数相除,所以,1/2 = 0当然没结果了。
1.0/2.0这样就可以。
你干嘛每循环一次都要把sum归零啊?前面的不白加了么.
把循环里的sum=0去掉。
或者你先等比求和,然后直接输出
result.Text = (1.0 - Math.Pow(0.5, a)).ToString()
这样也可以。追问谢谢你,下面的可以了,但下面是将0.5改成(1/2)不行是什么问题呢
Double sum=0;
Int32 n;
n = Convert.ToInt32(TextBox4.Text);
for (int a=1; a<=n; a++)
{
Double S;
S = Math.Pow(0.5, a);//为什么改成S = Math.Pow((1/2), a);就不行呢
sum = sum + S;
}
result.Text = Convert.ToString(sum);追答因为是整数相除,所以,1/2 = 0当然没结果了。
1.0/2.0这样就可以。
全部回答
- 1楼网友:天凉才是好个秋
- 2021-01-17 03:29
你第一次 n 是多少? 比如
- 2楼网友:举杯邀酒敬孤独
- 2021-01-17 02:10
Double n, sum=0;
n = Convert.ToDouble(TextBox4.Text);
sum = 0;
for (Int32 a=1; a<=n; a++)
{
n = Math.Pow(0.5, a);
sum = sum + n;
}
result.Text = Convert.ToString(sum);
你那样每次循环都将sum初始化为0了
n = Convert.ToDouble(TextBox4.Text);
sum = 0;
for (Int32 a=1; a<=n; a++)
{
n = Math.Pow(0.5, a);
sum = sum + n;
}
result.Text = Convert.ToString(sum);
你那样每次循环都将sum初始化为0了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯