double與longdouble的區(qū)別?
1.long與double在java中本身都是用64位存儲的,但是他們的存儲方式不同,導(dǎo)致double可儲存的范圍比long大很多
2.long可以準(zhǔn)確存儲19位數(shù)字,而double只能準(zhǔn)備存儲16位數(shù)字(實際測試,是17位,)。double由于有exp位,可以存16位以上的數(shù)字,但是需要以低位的不精確作為代價。如果一個大于17位的long型數(shù)字存到double上,就會丟失數(shù)字末尾的精度
3.如果需要高于19位數(shù)字的精確存儲,則必須用BigInteger來保存,當(dāng)然會犧牲一些性能。