㈠ java中double和float的使用怎么区别
setMaximumFractionDigits
public void setMaximumFractionDigits(int newValue)设置数的小数部分所允许的最大位数。maximumFractionDigits 必须 >= minimumFractionDigits。如果 maximumFractionDigits 的新值小于 minimumFractionDigits 的当前值,则 minimumFractionDigits 也将被设置为新值。
参数:
newValue - 要显示的小数的最大位数;如果小于 0,则使用 0。具体子类可以为此值强加一个上限,以适合于被格式化的数值类型。
另请参见:
getMaximumFractionDigits()
㈡ java中float和double的区别...
1、内存结构
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位)
8bits(指数位)
23bits(尾数位)
double:
1bit(符号位)
11bits(指数位)
52bits(尾数位)
于是,float的指数范围为-128~+127,而double的指数范围为-1024~+1023,并且指数位是按补码的形式来划分的。
其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128
~
+2^127,也即-3.40E+38
~
+3.40E+38;double的范围为-2^1024
~
+2^1023,也即-1.79E+308
~
+1.79E+308。
2.
精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23
=
8388608,一共七位,由于最左为1的一位省略了,这意味着最多能表示8位数:
2*8388608
=
16777216
。有8位有效数字,但绝对能保证的为7位,也即
float的精度为7~8位有效数字
double:2^52
=
4503599627370496,一共16位,同理,
double的精度为16~17位
之所以不能用f1==f2来判断两个数相等,是因为虽然f1和f2在可能是两个不同的数字,但是受到浮点数表示精度的限制,有可能会错误的判断两个数相等!
㈢ java float和double的区别
单精度浮点数(float)与双精度浮点数(double)的区别如下:
(1)在内存中占有的字版节数不同
单精度权浮点数在机内占4个字节
双精度浮点数在机内占8个字节
(2)有效数字位数不同
单精度浮点数有效数字8位
双精度浮点数有效数字16位
(3)所能表示数的范围不同
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
(4)在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快
㈣ Java语言中的浮点型数据的float和double的单精度和双精度到底是啥意思
主要有下面几个区别,手册上的,希望能帮到你
1、变量类型不同
float属于单精度型浮点数据。
double属于双精度型浮点数据。
2、指数范围不同
float的指数范围为-127~128。
double而double的指数范围为-1023~1024
3、表达式指数位不同
float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位)
double的表达式为1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)
4、占用内存空间不同
float占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38。
double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
5、有效位数不同
float只能提供七位有效数字。
double可提供16位有效数字。