C语言double与float的区别以及输出时的小数点的数位控制

C语言double与float的区别

float : 单精度浮点数。                double : 双精度浮点数。

两者的主要区别如下:

        一、在内存中占有的字节数不同

                单精度浮点数在机内存占4个字节。

                双精度浮点数在机内存占8个字节。

        二、有效数字位数不同:

                单精度浮点数有效数字7位。

                双精度浮点数有效数字16位。

        三、数值取值范围:

                单精度浮点数的表示范围:-3.40E+38~3.40E+38。

                双精度浮点数的表示范围:-1.79E+308~-1.79E+308。

但double消耗内存是float的两倍,而且double的运算速度比float慢得多

因此 一般情况下能用单精度时不要用双精度

简单来说,float 为单精度,内存中占 4 个字节,有效数位是 7 位(因为有正负,所以不是8位),而double为 双精度,占 8 个字节,有效数位是 16 位。

输出时的小数点位数控制

形式为:

printf("%m.nf", a);

其中  “n”为希望保留的小数点位数例如“%.2f”即为保留小数点后两位。

#include <stdio.h>

int main(){
    float a = 3.1415926;
    printf("%.2f", a);
}

其次  “m”意为输出的小数所占列数,例如“%7.2f”即为输出共占7列(右对齐)。

        另:“m”前加“+”,“-”号分别表示右对齐和左对齐,在规范输出时用到。

#include <stdio.h>

int main(){
    float a = 3.1415926;

    printf("%7.2f\n", a);
    printf("%7.3f\n", a);
    printf("%7.4f\n", a);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值