Мои формулы с плавающей точкой не могут функционировать, если существует нулевая переменная. IE, если одна из входных переменных равна нулю, то в TextView не отображается результат, который отображает результат.Формула не работает, если переменные равны нулю
Насколько я могу судить, есть 2 решения.
One устанавливает нулевые EditTexts в 0
, если они равны нулю:
if (charisma == null) {
charisma.setText(0);
} else if (charisma != null) {
charisma.setText(getcharisma);
}
Другой игнорирует нулевые переменные в уравнении:
try {
float FP = Float.parseFloat(pref.getString("fp", ""));
float CHR = Float.parseFloat(charismafpvalue.getText().toString());
float PER = Float.parseFloat(persuasionfpvalue.getText().toString());
float ELI = Float.parseFloat(elicitationfpvalue.getText().toString());
float AML = Float.parseFloat(animalhandlingfpvalue.getText().toString());
if (charismafpvalue == null) {
fpr.setText(Float.toString(FP - (PER + ELI + AML)));
} else if (charismafpvalue != null) {
fpr.setText(Float.toString(FP - (CHR + PER + ELI + AML)));
}
}
catch (NumberFormatException ignore) {}
Проблема в том, что мой код для обоих из них не удается функционировать. Значения не установлены в 0, если они равны нулю, и формула не работает, несмотря на код if() {} else if() {}
.
Любые предложения относительно того, что является лучшим способом справиться с этим? И как его реализовать?
это приводит к следующей ошибке: 'NumberUtils не может быть resolved' – Mikitz06
кажется, не импортировать NumberUtils. – Mikitz06
Да, это часть внешней зависимости, предоставляемой Apache Commons под названием Commons Lang. Вы можете больше узнать об этом и загрузить его [здесь] (http://commons.apache.org/proper/commons-lang/). – Keppil