double f=0.0005;
double i=3;
double d=f*i;
double f1=0.0005;
double j=3;
double d1=f1*j;
if(d==d1){
System.out.println("aaa");
}这样就相当,java中基本数据类型称为自动变量,自动变量存的是字面值,由于字面值的数据大小可知,生存期可知,出于速度的原因就把它们放在栈中,栈中的数据可以共享.如int a=3 int b=3 编译器先处理int a=3;首先它会在栈中创建一个变量为a的引用,然后在找字面值等于3的地址,没有 就开辟一个存放3这个字面值的地址,接着处理int b=3;在创建完变量为b的应用后,查找有没有3这个字面值的地址,现在有了,则指向3的地址,这时用==(判断地址是否相同时)就会为True
1、浮点性能,以前称之为协处理器,486以前并不包含在CPU中(8086~8087,80286~80287,80386~80387=80386DX,80486SX~80487=80486DX,586=586+587……)浮点运算是高精度的运算方式,主要运用在科学和多媒体中。
2、可以理解为小数点可移动的运算方式。目前速度AMD>>Inter
3、浮点数是指带有有限位小数的有理数,如-10.8、0.00、25.01 等。
4、 浮点运算,得到的结果是一个浮点数,计算结果中的小数部分将保留下来。
例如:用浮点运算时,100.0÷3.0=33.33333333。
5、例如一颗子弹打到墙上,有一片土掉落,浮点运算强的,可能还能够把掉下来的灰尘也表现出来。
望采纳
3.14是单精度,3.14159是双精度。
两者区别如下:
一、指代不同
1、单精度:是指计算机表达实数近似值的一种方式。
2、双精度:此数据类型与单精度数据类型(float)相似,但精确度比float高。
二、占用空间不同
1、单精度:范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。
2、双精度:双精度型占8 个字节(64位)内存空间,其数值范围为-1.79769313486232E308 到1.79769313486232E308。
三、特点不同
1、单精度:数值比以上值小的时候,将会由于尾数的有效位数减少而逐步丧失精度(IEEE 754的规定),或者有的系统则直接采用0值来简化处理过程。
2、双精度:编译时所占的内存空间依不同的编译器而有所不同,是double float数据类型,C/C++中表示实型变量的一种变量类型。
参考资料来源:百科单精度
参考资料来源:百科-双精度浮点型
浮点由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。
浮点数a由两个数m和e来表示:a = m * b^e(b的e次方)。
在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...ddd的p位数(每一位是一个介于0到b-1之间的整数,包括0和b-1)。如果m的第一位是非0整数,m称作规格化的。
有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。
我们可以用这3种方法来表示浮点数:
1、BCD 代码。
2、 阶码尾数表示法。
3、 我们可以把第二种方法改造一下,就能得到一种更好的方法。先把一个浮点数的小数点移到最后,用N=M*RC 表示,R=10,然后再把M 转换为二进制B,再用C 做阶码,B 做尾数用阶码尾数法表示。
例如: 3.14159=314159*10^(-5)。
314159 用二进制表示为1001100101100101111。
用这种方法不仅可以精确表示浮点数的值,还可以充分的利用存储空间。
扩展资料:
浮点运算单元(FPU)
浮点数运算和整数运算不同,所以运算单元当然不同。早期的浮点处理器是作为 CPU 的「外置协处理器」出现的。x87 FPU 特指与 x86 处理器配套的浮点协处理器架构。
有以下要点:
1、浮点寄存器采用栈结构。
深度为 8,宽度为 80 位,即 8 个 80 位的寄存器。
名称为 ST(0) ~ ST(7),栈顶为 ST(0),编号分别为 0 ~ 7。
2、所有浮点运算都按 80 位拓展精度进行。
3、浮点数在浮点寄存器和内存之间传送。
(1)float、double、long double 型的变量在内存中分别用 IEEE 754 单精度、双精度、扩展精度表示,分别占 32 位,64 位,96 位(前 16 位无效)。
(2)float、double、long double 类型变量在浮点寄存器中都用 80 位拓展精度表示。
(3)从浮点寄存器到内存:80 位拓展精度格式转换为 32 位或者 64 位。
(4)从内存到浮点寄存器:32 位或者 64 位转换为 80 位扩展精度格式。
参考资料来源:百科-浮点
百科-浮点表示法
以上是深入解析JAVA中double类型的浮点运算的详细内容。更多信息请关注PHP中文网其他相关文章!