A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include<stdio.h>

int main(){

    struct Student{
        int age;
        float weight;
        char *name;
    };
   
    struct Student stu1 = {16,58.4,"ZhangSan"};
   
    printf("%f\n", stu1.weight);
    return 0;
}
为啥输出的值不是58.4的精确值呢?是不是跟结构体变量所占内存大小有关啊,这一块我跳过去了,求解释,在线等!!!!!!

5 个回复

倒序浏览
printf("%.2f\n", stu1.weight);

楼主,float默认输出6位小数点的,.2f输出两位
回复 使用道具 举报
shane_west 发表于 2015-4-8 20:02
printf("%.2f\n", stu1.weight);

楼主,float默认输出6位小数点的,.2f输出两位

按理说4后面应该全是0啊,怎么最后一位不是呢,好纠结
回复 使用道具 举报
oucding 发表于 2015-4-9 10:22
按理说4后面应该全是0啊,怎么最后一位不是呢,好纠结

最后一位是什么?
回复 使用道具 举报
好象是存储时是两个数之间,但不会等于本来那个数
回复 使用道具 举报

乱的,你复制运行一下试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马