Предполагая, что Percent определен как число с плавающей запятой, вы должны заменить вторую на последнюю инструкцию следующую команду:
Percent = (txt2 * txt) / 100.00;
Если вы используете в уравнении буквенное число, являющееся целым числом, например 100,который также включает в себя числа с плавающей запятой, тогда результат может быть представлен как целое число, и может произойти округление или усечение.
Я думаю, что ваша проблема вызвана тем, что пользователь вводит «25%» в текстовое поле 1. Когда вы пытаетесьчтобы разобрать это в число с плавающей точкой, вы получите ошибку формата, потому что «%» не является числовым значением.Вам нужно каким-то образом преобразовать 25% в .25, прежде чем пытаться разобрать это значение в число с плавающей точкой.В противном случае он сгенерирует ошибку и заменит первое значение как 0.0, что приведет к тому, что вычисление процентов приведет к 0.0
float txt;
try{
txt = Float.parseFloat(txtbx1.getText().toString()); // this will generate an error on a value of '25%'
}
catch(NumberFormatException x){
txt = (float) 0.0; // so, this will execute.
}
. Это можно проверить, поставив точку останова в своем коде в этой строке вИсключение и доказательство того, что на самом деле здесь происходит исключение.