|
概念:float,double都属于浮点类型,能表示包括小数在内的更大范围的数。
浮点计数法(以π为例):
(1)一般计数法:3.1415
(2)科学计数法:3.14 × 10
(3)科学计数法指数形式:3.14E3
总览:
(1)浮点数在计算机中以科学计数法形式储存,1位符号位,8位指数位,23位小数位,底数为2。
符号域:占用1位,0 表正,1 表负
指数域:占用8位,定义域为-127 ~ 128。
尾数域:占用23位,内存中省略小数点左侧的二进制1,以腾出一个二进制位来保存更多的尾数。
以 9.625 为例:用二进制表示为1001.101,在计算机中表现为1.001101×2 ,实际保存在内存中的只有尾数部分001101,省略了整数部分1 。后续尾数位用 0 补全 0011 0100 0000 0000 0000 000 共23位。
(2)使用%e 打印指数计数法的数字,使用 %位数.位数e 控制保留位数。
单精度 float:
(1)至少能表示6位有效数字,包括整数部分和小数部分。
(2)定义域:10E-37 ~ 10E37
(3)float通常占32位内存,8位表示指数,1位表符号,余下的表示非指数部分。
(4)使用%f 打印十进制float类型。
双精度double:
(1)至少能表示1位有效数字,包括整数和小数部分。
(2)定义域:10E-37 ~ 10E37,与float相同。
(3)double占64位内存,符号位和指数位的域与float相同,通常把余下的32位内存单元全部用于尾数域。所以double的精度比float大得多。
(4)使用%f 打印十进制double类型。
|