2016-01-07 4 views
-6

введите описание изображения здесьзначение переменной происходит неправильно

enter image description here enter image description here

проблема заключается только в нечетном методе.

Почему значение t равно 0,0?
Почему это не 0,5?

мой остальной код:

{ 

       String strNum1 = editText.getText().toString().trim(); 
       String strNum2 = editText2.getText().toString().trim(); 
       if (strNum1.length() == 0) { 
        Toast.makeText(MainActivity.this, "Please enter n", Toast.LENGTH_SHORT).show(); 
        return; 
       } 
       if (strNum2.length() == 0) { 
        Toast.makeText(MainActivity.this, "Please enter x", Toast.LENGTH_SHORT).show(); 
        return; 
       } 

       num1 = Integer.parseInt(strNum1); 

       num2 = Integer.parseInt(strNum2); 


       double k = even(num1, num2); 
       double l = odd(num1,num2); 
       double t = k + l; 


       textView.setText(String.valueOf(l)); 


      } 
+0

Я не знаю, как отредактировать этот crap.i предоставил ссылки на изображения в верхней части моего вопроса. – tbp

ответ

0

Где у вас есть:

float t = 1/x; 

х является разобран в параметра Я сигнатуру метода, и вы дали ему типа 'Int'. Это должно быть типа double или float, чтобы предотвратить цельное принуждение. Вы можете даже написать «1» как «1.0» для ясности.

EDIT:

Я заметил, вы передаете num1 в качестве параметра с помощью следующего:

num1 = Integer.parseInt(strNum1); 

Таким образом, вы должны изменить это:

num1 = Double.parseDouble(strNum1); 

Для того, для чего я упомянул выше, чтобы работать.

0

Вам необходимо набрать x на float. Это число типов данных и 1 также целое число, поэтому точный расчет:

float t = 1/(float)x; 

Теперь это даст вам данные с плавающей точкой, как вам требуется.

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