float,double,long double——语言学习笔记6

浮点数

C语言中浮点类型有float,double和long double类型,浮点数字可以表示包括小数在内的更大范围的数。
浮点数的表示类似于科学计数法(即用小数乘以10的幂来表示数字)。该计数系统常用于表示非常大或者非常小的数。

数字科学计数法指数计数法
1000000000 1.0×109 1.0e9
123000 1.23×105 1.23e5
322.56 3.2256×102 3.2256e2
0.000056 5.6×105 5.6e5

第一列是一般记数法,第二列是科学记数法,第三列是指数记数法也叫e记数法。这是科学记数法在计算机中的写法,e后面的数字代表10的指数。
C语言标准规定,float类型必须至少能表示6位有效数字,且取值范围至少是 1037 10+37 ,前一项规定指float类型必须能够表示33.333333的前6位数字,而不是精确到小数点后6位数字。后一项规定用于方便的表示诸如太阳质量(2.0e30千克)。。。等,通常系统储存一个浮点数要占用32。其中8位表示指数的值和符号,剩下的24位表示非指数部分(也叫做尾数或者有效数)及其符号

C语言中的另一种浮点类型是double(意思是双精度)。double和float类型的最小取值范围相同,但至少必须能表示10位有效数字。一般情况下,double占用64位而不是32位。一些系统将多出来的32位全部用来表示非指数部分。这不仅增加了有效数字的位数(即提高了精度),而且减少了舍入误差。还有一些系统把其中的一些位分配给指数,以容纳更大的指数,从而增加了可表示数的范围。无论使用哪种方法,double类型的值至少有13位有效数字,超过了标准的最低位数规定

C语言的第三种浮点类型是long double 以满足比double更高的精度要求,不过,C只保证long double类型至少与double类型的精度相同

1、声明浮点型变量

float noah ,jonah;
double trouble;
float pald=6.63e-34
long double gnp;

2、浮点型常量

在代码中可以使用多种形式书写浮点型常量。浮点型常量的基本形式是:有符号的数字(包括小数点),后面紧跟着e或者E,最后是一个有符号数表示10的指数,下面是两个有效的浮点型常量:
-1.56E+12
2.83e -3
正号可以省略,可以没有小数点(如,2E5)或指数部分(如19.28),但是不能同时省略两者。可以省略小数部分(如3.E16),或者整数部分(如,.45E-6),但不能同时省略两者。下面是更多的有效浮点型常量示例:
3.14159
.2
4e16
.8E-5
100.
不要在浮点型常量中间加空格:1.56 E+12 错误
默认情况下,编译器假定浮点型常量是double类型的精度。例如,假设some是float类型的变量,编写下面的语句:
some=4.0*2.0;
通常4.0和2.0被储存为64位的double类型,使用双精度进行乘法运算,然后将乘积截断成float类型的宽度。这样做虽然计算精度更高,但是会减慢程序的运行速度。
在浮点数后面加上f或者F后可以覆盖默认设置,编译器会将浮点类型常量看作float类型,如2.3f和9.11E9F。使用l或者L后缀使得数字成为long double类型,如54.3l和4.32L,注意,建议使用L后缀。没有后缀的浮点型常量通常是double类型。

3.打印浮点值

printf函数使用%f转换说明打印十进制记数法的float和double类型浮点数,用%e打印指数记数法的浮点数。如果系统支持16进制格式的浮点数,可以用a和A分别代替e和E。打印long double类型要使用%Lf,%Le,或%La转换说明。给那些未在函数原型中显式说明参数类型的函数传递参数时,C编译器会自动的把float类型的值转换成double类型。

4.如何声明简单变量

1.选择需要的类型
2.使用有效的字符给变量起一个变量名
3.按以下格式进行声明:
类型说明符 变量名;
类型说明符由一个或多个关键字组成,下面是一些示例:
int erest;
unsigined short cash;
4.可以同时声明相同类型的多个变量,用逗号分割各个变量名,如下所示:
char ch,init,ans;
5.在声明的同时还可以初始化变量:
float mass=6.0E24;

5.类型大小

如何知道当前系统指定的类型的大小是多少?
C99为类型大小提供%zd转换
printf("Type int has a size of %zd bytes .\n",sizeof(int));
sizeof 是C语言的内置运算符,以字节为单位给出指定类型的大小,C99和C11提供%zd转换说明匹配sizeof的返回类型。一些不支持C99和C11的编译器可以使用%u和%lu代替%zd。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值