关于单精度和双精度实数

用科学计数法表示双精度实数:

#include

int main()
{
    double a=498465468.549;
    printf("%e",a); //标准指数形式输出单,双精度数(科学计数法)
                    //数字部分小数位数为6位,小数末位四舍五入,指数支持3位
                    //不支持整数
    return 0;
}
关于单精度和双精度实数的有效位数的实验:

#include

int main()
{
    float a=44846.1234567841011;//float型小数最多有效数字为8位,整数位为0时
    double b=0.12345678910111224;//double类型数小数最多有效数字为16位,当整数位为0时
                                //随着整数位数的增多,小数位有效数字逐渐减少,但相加总和不变
                                //即整数位数 + 小数位数 = 有效位数(16)
                                //与double类型数据的在内存单元中的存储结构有关
    printf("%-8.2lfhello\n",3.456);//末位四舍五入
    printf("%.16f\t%.16lf\n",a,a);//%f和%lf效果相同
    printf("%.16lf\t%.16f\n",b,b);

    return 0;
}
/*即float型有效数字最多为8位,double类型有效数字最多为16位*/

你可能感兴趣的:(c语言,基础,谭浩强,C语言,基础,谭浩强)