double 与 float的比较
来源:互联网 发布:招python测试工程师 编辑:程序博客网 时间:2024/04/29 20:07
1 范围
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位)
8bits(指数位)
23bits(尾数位)
double:
1bit(符号位)
11bits(指数位)
52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
2 精度(小数位)
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
0 0
- double 与 float的比较
- float double 与0比较
- Double 与 Float 的值的比较结果
- float double的精度以及与0比较
- bool、int、float、double变量与0值的比较
- float与double类型区别比较
- float与double的区别
- Float与Double的isNaN()
- Float与Double的isNaN()
- double与float的区别
- float 与double 的区别
- double与float的区别
- double与float的详解
- 关于int,float,double与Integer、Float、Double的理解
- Double与Float,Integer,Long封装类型的变量,比较大小时,
- FLOAT或DOUBLE列与具有数值类型的数值进行比较 问题
- 基于C++浮点数(float、double)类型数据比较与转换的详解
- 基于C++浮点数(float、double)类型数据比较与转换的详解
- 模拟库函数实现字符串的操作
- Android进阶知识点(AsyncTask,Looper、Handler和HandlerThread)
- 国际化和struts2中的国际化
- JavaScript之初识
- LeetCode209—Minimum Size Subarray Sum
- double 与 float的比较
- 离散题目12
- PCIe学习笔记(18)--- Power Management (3)
- 逐步把Nginx及Redis引入项目组之负载均衡技术调研初版总结
- 欢迎使用CSDN-markdown编辑器
- 博弈SG定理模板
- Linux通过数字的形式来设置权限
- 数据结构基础知识
- 最短路 floyd算法