int类型:
4字节32位
第一位:符号位 2-9位:阶位/指数位 10-32位:普通数值位
0 00000000 00000000000000000000001
flaot类型:
4字节32位
第一位:符号位 2-9位:阶位/指数位 10-32位:普通数值位
0 00000000 00000000000000000000001
double类型:
8字节64位
第一位:符号位 2-12位:阶位/指数位 13-64位:普通数值位
0 00000000000 000000…00001(普通数值位是52位)
同样是4字节但是float类型比int类型要表示更大一些。
这是因为int类型,比如用横轴来表示int类型的话,每一个点之间是等间距的。
但是float类型,越靠近0的时候越密集,离0越远越稀疏,所以也造成了精度的丢失。
如下:
这也是计算机为什么不能用浮点型进行计算,尤其是在金钱的计算上,因为Java中数值类型不能用于精准计算。