| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2778 人关注过本帖
标题:结构体中一个float型变量初始化问题
只看楼主 加入收藏
雨汪
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-8-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
结构体中一个float型变量初始化问题
#include<stdio.h>
struct stu
{
    int num;
    char name[20];
    char sex;
    float score;
}boy[5]=
{
    {101,"zhou ping",'M',45},
    {102,"zhang ping",'M',62.5},
    {103,"cheng ling",'F',92.5},
    {104,"wang ming",'M',62.2},    /*出现警告处*/                                 
    {105,"liu fang",'F',62.5}
};
int main()
{
    struct stu *p;
    printf("no\tname\t\t\tsex\tscore\t\n");
    for(p=boy;p<boy+5;p++)
        printf("%d\t%s\t\t%c\t%f\t\n",p->num,p->name,p->sex,p->score);
    return 0;
}
编译时有一个警告,   'initializing' : truncation from 'const double ' to 'float '  把62.2改成其他的数有的可以有的还是不行,各位大神求指教啊!!!
搜索更多相关主题的帖子: 结构体 include zhang cheng 
2013-08-02 15:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
你知道C编译器把1.0这样的字面量当作什么类型?把这种类型强制到float有什么问题?有些数值是float无法记录的,所有有些可以,有些不可以。顺便教你一个乖:编程时不要用float类型,它比double的范围小,而且运行更慢!计算机运算速度最快的是int和double,优先用这两个,别看那些书的胡扯,教你用float就真去用。

[ 本帖最后由 TonyDeng 于 2013-8-2 15:21 编辑 ]

授人以渔,不授人以鱼。
2013-08-02 15:19
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
顶楼上,我以前也看过某些教科书上用float(用于节约存储的场合除外),一直觉得很不可思议。

to 楼主:
如果你一定要用float,就应该写成 62.2f
按C/C++标准,如果不加f后缀,类型为double;加f后缀为float;加L后缀为long double
现在的C/C++标准都有long double了
2013-08-02 15:47
FeiJ
Rank: 2
等 级:论坛游民
帖 子:18
专家分:62
注 册:2013-8-2
收藏
得分:0 
是不是float的精度损失了。

怎么找我,加771120028告诉你
2013-08-02 17:24
快速回复:结构体中一个float型变量初始化问题
数据加载中...
 
   



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

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