首页  >  文章  >  电脑教程  >  什么是java浮点数常量

什么是java浮点数常量

WBOY
WBOY转载
2024-01-13 19:51:311120浏览

什么是java浮点数常量

什么是java浮点数常量

浮点型数据类型表示实数,包含小数部分。现实世界的数据复杂,需要支持实数的数据类型。

一、浮点型常量 Java的实常数有两种表示形式:十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123. ,123.0 。 2.科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。 实常数在机器中占64位,具有double型的值。对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。

浮点型变量有两种类型:float和double。float占32位,取值范围为3.4e-038~3.4e+038;而double占64位,取值范围为1.7e-308~1.7e+308。double类型比float类型具有更高的精度和更大的表示范围,通常在科学计算等需要高精度的场景中使用。

在Java中,可以使用float和double来定义浮点型变量。例如: float f; // 指定变量f为float型 double d; // 指定变量d为double型 与C、C++不同,Java没有无符号整数类型,并且规定了整型和浮点型数据所占的内存字节数。这种规定确保了Java程序的安全性、鲁棒性和平台无关性。这意味着不同的Java实现在处理整型和浮点型数据时具有一致的行为,无论运行在哪个平台上,结果都是可预测的。

java浮点数计算问题

位运算通常在硬件控制中使用,表达式本身无法确定具体含义,需结合实际场景。

&叫做“按位与”,其规则是:0&0=0 1&0=0 0&1=0 1&1=1

“|”叫做“按位或”,运算规则是:0|0=0 1|0=1 0|1=1 1|1=1

0x7fffff用32位二进制表示就是 0000 0000 0111 1111 1111 1111 1111 1111

根据按位与的运算法则就是把bits的高9位清零。

0x800000用32位二进制表示是 0000 0000 1000 0000 0000 0000 0000 0000

根据按位或的运算法则就是把第24位置1。

那么综合来看,((bits & 0x7fffff)|0x800000)的意思就是先把bits的高9位清零,然后再把第24位置1。

关于前半部分,“

至于问号,就不用解释了吧?

一个JAVA关于浮点类型的问题

浮点数在做运算后是会出现误差的,这很正常。

double a=2.00-1.10;

double b=0.90;

System.out.print(a==b);

结果会输出false

所以有时在判断浮点数相等时会用到一个方法,那就是

public static boolean isEqual(double a,double b){

final double epsilon=0.00000001;

return Math.abs(a-b)

}

综上所述,浮点数经过运算后是会出现误差的,0.7799999713897705就是将float转化为double导致误差出现,0.78是float正常运算

以上是什么是java浮点数常量的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:docexcel.net。如有侵权,请联系admin@php.cn删除