Java 中float 、double的精度问题:float 、double取值范围是怎么样计算出来
答案:2 悬赏:10 手机版
解决时间 2021-02-14 23:01
- 提问者网友:王者佥
- 2021-02-14 13:17
Java 中float 、double的精度问题:float 、double取值范围是怎么样计算出来
最佳答案
- 五星知识达人网友:刀戟声无边
- 2021-02-14 14:07
float和double都是遵循IEEE754标准的,内存单元里都是划分为三部分的:符号位 阶码 尾数.其中float的符号位占一位,阶码为8位,尾数为23位,所以一共四个字节;double的符号位占一位,阶码为11位,尾数52位.符号位为0的话说明是正的,为1的话说明是负的;阶码就是尾数所要乘以的2的次方数;尾数默认是去掉整数位的1的,也就是说加入尾数序列为01010101(后面还有很多),那么其实它是1.01010101(后面还有很多).比如一个float类型的变量,其符号位为0,阶码化成十进制为3,尾数为01000000(后面都是0),那么这个变量化为十进制的话就是1.25*(2^3)=10.int类型占四个字节,但是它不是像float那样表示的,int除了符号位之外其他位都是表示数值的,没有表示阶码的,所以它的范围比float小很多.下面是维基百科上的一点解释,不清楚的话还是先看看计算机原理的书或者追问,
全部回答
- 1楼网友:罪歌
- 2021-02-14 15:33
哦,回答的不错
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯