java数据基本类型

  • float 的长度比 long 小
  • float 能表示数的范围比 long 大 

容易得出结论:float 的数据密度比 long 稀疏

 


 

long 可以表示数据范围内的所有整数,但是 float 从来都只能在小范围内(相对来说),表示连续的整数和某些小数,换句话说,其精度有限。

int[] array={2147483647,21474836,2147483,9999999,10000000,16999998,16999999,17000005};
System.out.println();
for(int i=0;i<array.length;i++){
	long a=array[i];
	float b = (float) a;
	System.out.println("long show: " + a);
	System.out.println("float show: " + b);
	System.out.println("------------------------");
}

运行结果如下:

 


 

在 Java 的基础数据类型中,基础中的基础是 int,在计算机中,没有比 int 更基础的数据类型了

尽管 boolean、char、byte、short 都比 int 要短,但是他们仍属于 int 基础之上的扩展。

boolean 是专门表示真假的值,用途很明确

char 是专门表示 ascii 字符的值,用途也很明确

byte 是一种更加基础的数据,是针对于内存单元的精确引用,也算明确

short 的存在是缩小了范围,对应于 long 相对 int 来说扩大了范围,简单地从内存空间与数据范围角度进行了扩展

 


 

那么,float 和 double 的存在意义就不那么清晰了

首先来看float,它的长度小于 long ,和 int 长度相同,却声称有更大的数据范围,以此自豪。然而我们不要忘了,有得必有失,float 的数据范围是建立在牺牲数据准确性的基础之上的。

如果我们看不到它背后的血肉模糊,而一味地为它强撑起来的高大身影而欢呼,坑了的还是自己。

float 特性,在用科学计数法表示时,最多只有8位小数。

  1. 在阈值1下,float可以准确表示所有绝对值小于阈值的整数
  2. 在阈值i 下,float可以表示带有 i 位小数的有理数

而需要说明的是,这里的阈值i 小于阈值1,而阈值1 远小于 int 类型的最大值。

综上,我总结出,float 类型的用法是:

 

总而言之,在精度要求不高时,使用 float,重点是,我们要知道,怎要的精度要求算是不高 

  • 在需要表示的小数还算小时,使用 float
  • 在需要表示的大数不要求准确时,使用 float

 


float 的粗制滥造太过显而易见,double 的出现是为了用空间治疗 float 的模糊血肉 ,让其没有那么恐怖,至少长好表皮,蒙的了人,因为我们其实很少会到达属于 double 的阈值1,所以触不到天花板,在一定程度上就忽视了天花板的存在,罢了。

也就是说,double 的出现单纯是为了在 float 的基础上提高精度。


如果说,int 是最基本的数据类型

而 boolean 是表示真值的

char 是表示字符的

byte 是表示内存的

float 是表示小数的

那么,short 是为了为 int 节省空间,long 是为了为 int 扩大范围

double 是为了为 float 提高精度

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值