double類型和int類型的區別


引例:

double a=19*3.3;

System.out.print(a);

結果為62.9999996,不是62.7;這里不單純是因為給的是double類型

    (1) 62.7 和 62.699999999999996 實際意義上是一樣的,double是一個不精確的表示

    (2) double用於表示連續數,int表示離散數。什么叫連續數,看下面的解釋。

    /* 小知識:連續數 與 離散數 *

    * 連續數:表示一個連續的值,本身是不精確的。

    * 比如,買了1000克豬肉,和買了999.999999克鍺肉,

    * 並無區別。因為1000克本身是一個不精確的測量值,有一定的誤差。

    * 再比如說,你在高速上開車,120km就算超速。然而,測速軟件不會剛好卡在120km就判定超速的,

    * 因為誰都知道速度測量有誤差。一般會在大於 120 + 10 左右才算你超速。

    * 你作為程序員,在連續數的判斷上必須要加上誤差范圍,不然會被人投訴的。

    *  離散數:表示離散的值。如1只豬,2只豬。

    *  離散數用int表示,可以精確比較。比如,小王家有m只豬,小李家有n只豬,則m和n 可以精確比較。

    *  連續數用double表示,不能精確比較。比如,小王身高1.8000米,小李身高1.79999米,

    *  然后你說小王比小李高,人家能服氣嗎?尺子的誤差那么大!

    *  小知識:1.0 = 0.999999... 你明白嗎?

    *  因為1/3 = 0.3333333

    *  所以 3 * 1/ 3 = 0.999999 = 1

    */


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM