| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2082 人关注过本帖
标题:进制转换小数部分求助
取消只看楼主 加入收藏
tedwugood
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-10-7
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:2 
进制转换小数部分求助
这是我编的10进制转4进制的程序 要求保留两位小数 可以运行但是小数部分结果误差很大 求大神指导

#include<stdio.h>
int main(void)
{
   double num,xs,b=0,result; int sum=0,i=0,j=1,zs,num_int,xs_int;
     scanf("%lf",&num);
    //整数部分 没有问题//
zs=num;
    while(zs)
    {
        sum+=zs%4*pow(10,i);
        zs/=4;
        i++;
    };zs=sum;
   //小数部分 好大的误差//
 num_int=num;
   xs=num-num_int;
   for(xs_int=xs;xs-xs_int!=0.00&&j<=2;j++) {      
xs=xs*4;xs_int=xs;
       b+=xs_int/pow(10,j);
       xs=xs-xs_int;
   };result=sum+b;
   printf("%.2f",result);
    return (0);
}

还有声明变量时为什么把double换成float就不行了

[ 本帖最后由 tedwugood 于 2010-10-10 01:36 编辑 ]
搜索更多相关主题的帖子: 进制 小数 
2010-10-10 01:25
tedwugood
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-10-7
收藏
得分:0 
回复 2楼 御坂美琴
为什么不能用pow啊 编译时确实有这个的warning 但是不影响运行啊 如果不用pow要用什么语句呢?
2010-10-11 03:08
tedwugood
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2010-10-7
收藏
得分:0 
回复 4楼 hahayezhe
多谢 但是您说的提取单byte是什么意思 我也想先转成2进制但是我不知道怎么用循环语句进行下一不两两相加 求指导
2010-10-11 03:12
快速回复:进制转换小数部分求助
数据加载中...
 
   



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

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