浮点数精度问题

单精度、双精度、长双精度占字节数和精度

话不多说,直接上代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
	//float
	//double
	//long double
	printf("------------------------------------\n");
	printf("1.浮点类型存储:\n"); 
	printf("float:%lu\n",sizeof(float));
	printf("double:%lu\n",sizeof(double));
	printf("long double:%lu\n",sizeof(long double));
	printf("------------------------------------\n");
	printf("2.浮点数表示方法:\n"); 
	float f1 = 0.0008;  //默认精度为6位 
	float f2 = 8E-3;
	float f3 = 8000;
	float f4 = 8E+3;
	printf("f1:%f\n",f1);
	printf("f2:%f\n",f2);
	printf("f3:%f\n",f3);
	printf("f4:%f\n",f4);
	printf("------------------------------------\n");
	printf("3.浮点数精度问题:\n");
	float a = 1.12345678901234567890;
	double b = 1.12345678901234567890;
	long double c = 1.12345678901234567890;
	printf("float:[%.30f]\n",a);
	printf("double:[%.30lf]\n",b);
	printf("long double:[%.30Lf]\n",c);
	//printf("立即推:绝大多数的浮点数是不能精确表示的!\n");
	//printf("float精度为6位\n");
	//printf("double精度为15-16位\n");
	//printf("Long double精度为15-16位,具体看编译器,不小于double\n");
	return 0;
 } 

输出结果:

------------------------------------
1.浮点类型存储:
float:4
double:8
long double:16
------------------------------------
2.浮点数表示方法:
f1:0.000800
f2:0.008000
f3:8000.000000
f4:8000.000000
------------------------------------
3.浮点数精度问题:
float:[1.123456835746765100000000000000]
double:[1.123456789012345700000000000000]
long double:[0.000000000000000000000000000000]

注:本人用的dec++编译器貌似不支持长双精度,所以打出来都是0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值