| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1304 人关注过本帖
标题:关于浮点定义
取消只看楼主 加入收藏
min624132806
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-2-20
结帖率:50%
收藏
已结贴  问题点数:8 回复次数:2 
关于浮点定义
#include <stdio.h>
int main (void)
{
    int a,b;
    float x,y;
    a=1,b=5;
    printf("x=");
    scanf("%f",&x);
    y=x>=-10?-a*(b+x):3/((a*a*a+x*x*x)*b);
    printf("%f\n",y);
    printf("%f\n",x<-10?3/((a*a*a+x*x*x)*b):-a*(b+x));
    return 0;
}


类型                位数           有效数字                 取值
 
float               32               6~~7             -1.4e-45~~3.14e38

double              64               15~~16            -4.9e-324~~1.8e308

long double         128              18~~19             ----------


X取值不限,可能在double 范围内取值,就应该定义为double类型,在long double中取值就应该定义为long double ,longdouble取值范围包括float double 取值范围,按理应该定义为long double类型,
为什么X,Y不能定义为double和long double ,定义为这任意类型运算结果会出错。
搜索更多相关主题的帖子: include return 
2017-03-02 22:21
min624132806
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-2-20
收藏
得分:0 
回复 2楼 wp231957
用long double和float 的运算结果,不一致这是为什么?
2017-03-03 22:35
min624132806
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-2-20
收藏
得分:0 
回复 7楼 wp231957
#include <stdio.h>
int main (void)
{
    int a,b;
    float x,y;
    a=1,b=5;
    printf("x=");
    scanf("%f",&x);
    y=x>=-10?-a*(b+x):3/((a*a*a+x*x*x)*b);
    printf("%f\n",y);
    printf("%f\n",x<-10?3/((a*a*a+x*x*x)*b):-a*(b+x));
    return 0;
}


#include <stdio.h>
int main (void)
{
    int a,b;
    double x,y;
    a=1,b=5;
    printf("x=");
    scanf("%f",&x);
    y=x>=-10?-a*(b+x):3/((a*a*a+x*x*x)*b);
    printf("%f\n",y);
    printf("%f\n",x<-10?3/((a*a*a+x*x*x)*b):-a*(b+x));
    return 0;
}

只是两个程序代码,不同在于X,Y定义类型不同,第一个程序用float,类型输出结果正常,第二个用的double类型结果却是0,这是为什么,请给我一个误区的解释,谢谢!
2017-03-09 21:47
快速回复:关于浮点定义
数据加载中...
 
   



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

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