关于float与double的精度问题

float:单精度,4字节;

double:双精度,8字节。

double的精度高,但消耗内存较大,速度较慢。


关于编程时小数点后位数:

 猜想:写代码时float与double类型分别小数点后精确到多少位(10进制),整数部分的位数是否对小数部分位数有影响?

#include<stdio.h>

int main()
{
		float a1,a2;
		double b1,b2;
		a1=2.00/3.00;
		a2=100000000.00/3.00;


		b1=2.0/3.0;
		b2=100000000/3.0;
		printf("%f\t%f\n%f\t%f\n",a1,a2,b1,b2);
		printf("\n%lf\t%lf\n%lf\t%lf\n",a1,a2,b1,b2);
		return 0;
}
root@ubuntu:/mnt/hgfs/WinLinshare# ./a.out
0.666667	33333334.000000
0.666667	33333333.333333

0.666667	33333334.000000
0.666667	33333333.333333


由结果可以看出:在GNU环境下float与double都是精确到小数点后六位,且整数部分对小数部分精确到第几位没影响。(关于都是六位应该是编译器问题。关于浮点型变量的存储方式点击打开链接)。但由输出结果可看出,float、double的精度还可以看出差别的。


另:关于单双精度的输入输出问题

printf()中float/double都用%f //因为在printf中%f代表双精度,对float先变成双精度

scanf()中float用%f  double用%lf






  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值