Java中的long与double的区别

1.long与double在java中本身都是用64位存储的,但是他们的存储方式不同,导致double可储存的范围比long大很多

2.long可以准确存储19位数字,而double只能准备存储16位数字(实际测试,是17位,)。double由于有exp位,可以存16位以上的数字,但是需要以低位的不精确作为代价。如果一个大于17位的long型数字存到double上,就会丢失数字末尾的精度

3.如果需要高于19位数字的精确存储,则必须用BigInteger来保存,当然会牺牲一些性能。

原文地址:https://www.cnblogs.com/xujanus/p/9486543.html