| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 330 人关注过本帖
标题:为什么结果会被四舍五入啊???
只看楼主 加入收藏
yy12
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-12-1
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
为什么结果会被四舍五入啊???
#include<stdio.h>
#include<math.h>
int main()
{
    double i,flag,x;
    flag=1,x=0,i=1;
    while((1/i)>=pow(10,-6))
    {
        x=x+1/i;
        flag=(-1)*flag;
        i=(i+2)*flag;
    }
    printf("%.9f",4*x);
        
}
搜索更多相关主题的帖子: include double 
2013-12-02 12:34
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:3 
坐等大神指导

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-02 13:47
ytlcainiao
Rank: 2
等 级:论坛游民
帖 子:48
专家分:74
注 册:2013-11-28
收藏
得分:3 
当执行完第一次后,已经跳出循环了,因为你的-(1/2)>pow(10.0,6)为假,while循环跳出。
2013-12-02 13:53
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
那是pow(10,-6)  应该掉不出循环 。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-02 13:59
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:3 
回复 4楼 so_love
呵呵  为什么跳不出循环?   pow(10,-6) 是什么函数知道么?

第一次 循环过后   i 的值就为 负数了   所以小于 10的 -6次方

所以跳出循环   此时 x=1   所以输出 4

三十年河东,三十年河西,莫欺少年穷!
2013-12-02 15:24
怪叔叔
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:1
帖 子:113
专家分:234
注 册:2013-9-22
收藏
得分:3 
#include<stdio.h>
#include<math.h>
 main()
{
    double i,flag,x;
    flag=1,x=0,i=1;
    while((1/i)>=pow(10,-6))//第一次1 >= 0.0000001;//第二 -0.333333 <= .000001所以跳出循环,x = 1;
    {
        x=x+1/i;//第一次x=1;
        flag=(-1)*flag;//第一次flag=-1;
        i=(i+2)*flag;//第一次i = -3;
    }
    printf("%.9f",4*x);//故:输出的值是4.000000000
}
2013-12-02 17:38
快速回复:为什么结果会被四舍五入啊???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035324 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved