2016-12-08 4 views
-2

Мой список имеет тип float и анализирует все значение float. У меня эти пять значений в моем списке. Все они имеют значения, некоторые имеют формат с плавающей запятой, или некоторые имеют значение типа t1,, t2 и т. Д.Среднее значение в андроиде из списка

Я должен проверить, является ли значение форматом float, tean принимает этот формат float и вычисляет среднее значение в зависимости от отсутствия форматов поплавков в список.

ArrayList<Float> list = new ArrayList<Float>();  

String btn1 = t1.getText().toString(); 
String btn2 = t2.getText().toString(); 
String btn3 = t3.getText().toString(); 
String btn4 = t4.getText().toString(); 
String btn5 = t5.getText().toString(); 

float num1 = Float.parseFloat(btn1); 
float num2 = Float.parseFloat(btn2); 
float num3 = Float.parseFloat(btn3); 
float num4 = Float.parseFloat(btn4); 
float num5 = Float.parseFloat(btn5);  

list.add(num1); 
list.add(num2); 
list.add(num3); 
list.add(num4); 
list.add(num5); 
+0

не понимал проблем. В любом случае, вы разбираете float из String. Так что все будет плавать. – Vinodh

+0

Я переместил ваш запрос проблемы перед вашим кодом. Обычно проще переваривать код с некоторым контекстом. Я также очистил форматирование вашего кода. Самый простой способ поместить код в Stack Overflow - это вставить его, затем выбрать его и нажать Ctrl + K или нажать кнопку '{}'. Это будет отступать от кода еще четырьмя пробелами, что говорит SO, чтобы рассматривать его как код. – Chris

ответ

0

Вы можете использовать функции:

NumberUtils.isDecimal(str); 
    NumberUtils.isInteger(str); 

Так что в вашем случае, вам нужно добавить все строки в списке, а затем перебрать его и проверить, какие из элементов номера.

int count = 0; 
Float sum = 0f; 
for(String str : stringList){ 
    if(NumberUtils.isDecimal(str) || NumberUtils.isInteger(str)){ 
     count++; 
     sum+= Float.parseFloat(str); 
    } 
} 
Float average = sum/count; 
+0

Мне нужно скачать эту библиотеку numberutils? укажите путь? – bilawal

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