數值范圍
float類型又被稱為單精度類型,尾數可以精確到7位有效數字,在很多情況下,float類型的精度很難滿足需求。
double類型又被稱為雙精度類型,尾數可以精確到14位有效數字。
浮點類型默認是double。
public static void main(String[] args){float a=3.14;//報錯,默認是double類型/*FloatDouble.java:5: 錯誤: 不兼容的類型: 從double轉換到float可能會有損失float a=3.14;^1 個錯誤*/float b=3.14F;//正確}
不精確的浮點類型
浮點數存在舍入誤差,很多數字不能精確表示,如果需要進行不產生舍入誤差的精確計算,比如銀行金融,需要使用BigDecimal類。
為什么說浮點數存在舍入誤差?
1、同樣是占用8個字節的Long類型,Long的大小范圍要遠遠小于Double,Long和Double在內存里存儲是不同的。
2、從0.0~0.1之間有多少個數字?無窮個。
在比較中,最好不要使用浮點數。如下面例子
public static void main(String[] args){float f=0.1f;double d=0.1;System.out.println(f==d);//輸出結果false}
-------------
更多的Java,Angular,Android,大數據,J2EE,Python,數據庫,Linux,Java架構師,:
http://www.cnblogs.com/zengmiaogen/p/7083694.html