首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java基础之浮点数演算

2012-11-18 
java基础之浮点数运算与整型数据不同,浮点数是采用“符号位+指数+有效位(尾数)”的存储方式,介于这种存储的

java基础之浮点数运算

与整型数据不同,浮点数是采用“符号位+指数+有效位(尾数)”的存储方式,介于这种存储的特殊性,所以只占4字节的float类型数据却可以比占了8字节的long类型数据有着更大的取值范围。然而,这也是要付出一定的代价的,具体情况如下。
1.浮点数只是近似的存储
浮点数的缺陷1

public class FloatTest4 {      public static void main(String[] args) {            float f1=16777216f;            float f2=f1+1;            if(f1==f2){                System.out.println(“f1等于f2″);            }else{                 System.out.println(“f1不等于f2″);            }            System.out.println(“f1=”+f1);            System.out.println(“f2=”+f2);      }}

结果如下:
f1等于f2
f1=1.6777216E7
f2=1.6777216E7
这与浮点数的内部表示有关,这里可以不必理会浮点数复杂的存储原理,只要明白浮点数毕竟只是近似的存储,而且其存储值越大时,损失的精度也越大,对其进行数量级相差较大的加减元素按就会得不到想要的结果。有什么问题或见解,欢迎来八零客团队博客来讨论,80客团队成员随时欢迎!后续会讲解确保结果准确性的java类。

本文转载自:http://www.balingke.com/archives/737.html

热点排行