2014-10-01 55 views
-2
import java.util.*; 
public class test { 
    public static void main(String [] args) { 
     Scanner scn = new Scanner(System.in); 
     double s = 253.3; 
     while(s > 9) { 
      s = s/10; 
     } 
     System.out.println(s); 
    } 
} 

爲什麼輸出是2.5330000000000004而不是2.533?java中雙除10

+0

那種問題是關係到這是由那些誰學習信息技術,數學等研究...解釋說,在這裏,我認爲是矯枉過正的數值分析。如果您有興趣,我建議您搜索這類書籍並閱讀它們!即使是我提供的鏈接的答案,我認爲還不夠。我花了一年的時間在大學學習這樣的東西:) – XMight 2014-10-01 14:59:48

回答

2

因爲浮點值是一個近似值。

http://en.wikipedia.org/wiki/Floating_point

+1

沒錯,但並沒有真正提供很多見解。 – 2014-10-01 14:55:22

+1

謝謝。其實我不知道要搜索什麼,這就是爲什麼我在這裏發佈。這[http://floating-point-gui.de/basic/](http://floating-point-gui.de/basic/)也不錯! – 2014-10-01 15:06:14