2013-12-20 15 views
1

我想打印一個數字作爲一個整數,如果數字不具有remainder.I試着這樣做,但它似乎並沒有工作:如何檢查數字是否有餘數?

if(result%10==0)System.out.println(result.intValue()); 

然後我試圖打印:

System.out.println(result%10); 

如果結果= 7.0,則打印出7.0。那麼如何檢查數字是否有剩餘?

+2

你總是要除以十? – iamthereplicant

+0

因爲我想查看數字是否有餘數,所以我只分一次。 – user3123254

+0

可能dup? http://stackoverflow.com/questions/9898512/how-to-test-if-a-double-is-an-integer –

回答

0

浮點值,如果它等於它截斷整數:

public boolean isInteger(double x) 
{ 
    return x == (int) x; 
} 

但是,請記住,浮點數常常有導致奇怪的結果四捨五入問題。例如,如果沒有舍入誤差的正確答案爲1,那麼您可能正在進行一些數學計算並得到(例如)1.00000000001的值。如果您將上述數字傳遞給isInteger(),則它將返回false。如果這是一個問題,則需要使用公差參數進行「足夠接近」的檢查。

也許這樣的事情,但我想它可以改進:

// test if x is "closer than epsilon" to an integer 
// typical value for epsilon might be, say, 0.000001 

public boolean isInteger(double x, double epsilon) 
{ 
    double delta = Math.Abs(x - (int) x); 
    delta -= (int) delta; 
    return delta < epsilon; 
} 
0

什麼是result類型?

如果它是一個浮點數(非整數),那麼與0比較可能無效。

更好相當於

(結果10%== 0)

可能

(result.intValue()%10 == 0)

+0

結果是double類型的。 – user3123254

-1
 int p = 4; 
     int q = 4; 
     int result = p + q; 
     int rem = 10; 

     int val = result % rem; 
     if (val == 0) 
     { 
      System.out.println(val + "this value has no remainder"); 
     } 
     else if(val < rem) 
     { 
      System.out.println("given value cannot be devide brcouse its less than the number it going to devide"); 
     } 
     else { 

      System.out.println("the remainde of the given value is = "+ val); 
     }`enter code here` 
+0

他使用雙打,而不是整數。想要檢查double是否有小數部分或是純整數。 – TypeIA

+0

哦,大衛我誤解了你的問題! –