黑马程序员---float型和double型的取值
来源:互联网 发布:ubuntu 命令行上下 编辑:程序博客网 时间:2024/05/22 02:11
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。
float有32bit,double有64bit。
它们的构成包括符号位、指数位和尾数位。
种类
符号位
指数位
尾数位
float
第32位(占1bit)
第31-24位(占8bit)
第23-1位(占23bit)
double
第64位(占1bit)
第63-53位(占11bit)
第52-1位(占52bit)
取值范围主要看指数部分: float的指数部分有8bit(2^8),由于是有符号型,所以得到对应的指数范围-128~128。 double的指数部分有11bit(2^11),由于是有符号型,所以得到对应的指数范围-1024~1024。
由于float的指数部分对应的指数范围为-128~128,所以取值范围为: -2^128到2^128。
约等于-3.4E38 — +3.4E38
同理double范围约是-1.7E308—1.7E308
精度(有效数字)主要看尾数位: float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位
float尾数位23位,2^23=8388608为7位,所以不同的编译器规定不同,有些是7位,有些8位double尾数位52位,2^52=4503599627370496为15位,所以double的有效位数是15位
class Test { public static void main(String[] args) { System.out.println("Float:"); System.out.println(Float.MIN_VALUE); System.out.println(Float.MAX_VALUE); System.out.println("\r\nDouble:"); System.out.println(Double.MIN_VALUE); System.out.println(Double.MAX_VALUE); }}
书上的取值范围是:
数据类型名 数值范围float±3.4028347E+38~±1.40239846E-45
double±1.79769313486231570E+308~
±4.94065645841246544E-324
怎么会出现这种范围呢?
我又查了一本书,是这样的:
(2-2-23)*2127 可以理解为:1.11111111111111111111111*2111111
(注:1.111……和指数1111111均是二进制数)
可是 -2-149 怎么理解呢?
float型浮点数的指数位只有8位啊,而且是有符号数,最大128啊,149是怎么得来的?
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
0 0
- 黑马程序员---float型和double型的取值
- 12. Float和Double取值范围
- float double精度和取值范围
- Float型和Double混用的结果
- 关于float和double取模的问题
- int 和 long int float 以及 double 和点云的取值范围
- java 中float和double类型数据取值详解
- 关于float/double的取值范围和表示! - C语言
- 转帖:float型和double型数据的存储方式
- 转帖:float型和double型数据的存储方式
- float型和double型数据的存储方式
- 浮点型(float和double)
- float和double型数据算术运算
- 浮点型 float double
- Java的float和double
- double和float的区别
- double和float的区别
- double和float的区别
- 全面比较HTTP GET与POST方法
- 分布式机器学习的故事
- Storm集群安装部署步骤【详细版】
- iPhone开源系列:UIAlertView-Block
- 颜色的RGB
- 黑马程序员---float型和double型的取值
- JAVA概述(10) 函数(概述)
- http://support.microsoft.com/kb/2496029/zh-cn
- 特性的简单使用(Attribute)
- 实现控制日期现在在今天之后
- Guava关于JAVA中系统组件之间交互通讯(非线程之间通讯)
- Debugging C++ Release Projects - Finding the Lost Object Information
- 服务框架 Dubbo
- 工信部取消下放七项审批:电信资费不再审