java中double类数组要怎样才能精确到有几位小数点
发布网友
发布时间:2022-05-01 12:47
我来回答
共1个回答
热心网友
时间:2023-10-13 04:05
double的表示方式如下:
符号位(1位)
|
指数(11位,1位符号位+10位指数位)
|
尾数(52位)
存储方式是按照浮点的形式存储,所以不存在整数部分和小数部分。比如1678.3456
=
1.6783456
*
10^3,但计算机只认识0、1,所以要将其转化成二进制小数,我们不管转换后的结果如何,转换后得到的浮点数形式肯定是这种1.xxxxxx
*
2
^
y,其中xxxxxx表示小数部分,就是尾数,而小数点前面始终是1,可以不存储,y就是指数部分。
所以上面的1.xxxxxx
*
2^y在计算机中就表示为:
0
|
y
+
127
|
xxxxxx
最前面的符号位为0表示正;指数存储时要加上127;xxxxxx就是尾数。
float的表示方法类似,只是位数不一样,如下:
符号位(1位)
|
指数(8位)
|
尾数(23位)