2013-12-20 3 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

Возможно ли дублировать? 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.00000000001, когда правильный ответ без ошибок округления равен 1. Если вы пройдете такой номер до 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

Он использует парные, а не целые числа. Хочет проверить, имеет ли двойник дробную часть или чистое целое число. – TypeIA

+0

oh thnks Давид я неправильно понимаю вопрос, чем вы! –

Смежные вопросы