2016-05-02 3 views
-10

У меня есть два массива в array.xml один массив, содержащий значения в футах дюйма и другой массив, содержащий соответствующие значения в сантиметрах. Я хочу, когда пользователь выбирает какое-то значение в футах дюйма, тогда я могу показать соответствующие значения в сантиметрах. Прямо сейчас я пытался преобразовать, используя стандартную формулу, но это не дает мне точного значения. Вот мой код:Сравнение двух массивов в java

// if user changed the Height from foot inch to centimeters 
    if(Height_pref.equals(HEIGHT_UNIT)){ 
     CharSequence []changedHeight = changeHeightCms(); 
     heightPicker.setValues(changedHeight); 
     height_text.setText(getString(R.string.HeightCms)); 

    } 
//method to change height from ft'in" to cms 
public CharSequence[] changeHeightCms(){ 
    //final double[] weightLbs = new double[200]; 
    final ArrayList<CharSequence> ChangeheightArray = new ArrayList<CharSequence>(); 
    for (int index = 3; index < 7; index++) { 
     for (int index1 = 0; index1 < 12; index1++) { 
      float footinch = ((index*12)+index1); 
      int centimeters = Math.round((float) (footinch*2.54)); 
      ChangeheightArray.add(centimeters + ""); 

      if (index == 6 && index1 == 4) { 
       break; 
      } 
     } 
    } 

    CharSequence[] height1 = new CharSequence[ChangeheightArray.size()]; 
    final CharSequence[] HeightCmsArray = ChangeheightArray.toArray(height1); 
    return HeightCmsArray; 
} 

любой орган может сказать мне, если я жёстко эти значения, то как я могу показать преобразование?

+0

но сколько значений ног вы будут иметь соответствующие сантиметры? Если у вас есть конечные числа, тогда это будет хорошо, но если их будет много, я бы предложил динамический подход к преобразованию –

+3

Преобразование из Imperial в Metric - это всего лишь несколько умножений и дополнение ... почему вы хотите сделать поиск таблицы, чтобы преобразовать футы/дюймы в сантиметры? Это пахнет [проблема XY] (http://xyproblem.info) –

+0

@vivek у меня есть значения от 3,0 до 7,0 –

ответ

-2

Используйте этот код ......

float feet=Float.parseFloat(textView.getText()); 

int cm=Math.round((float) (feet*30.48)); 

cmText.setText(cm+""); 

и ссылку для перехода: - http://www.metric-conversions.org/length/feet-to-centimeters.htm

наслаждаться кодирования .....

+0

Формула, которую я использовал, неверна? –

+0

это прямое преобразование .... ваш код не читается. Возможно, из-за функции ROUND ответ неправильный .... Помните, всегда использовали прямое преобразование. – sushildlh

+0

, но мне нужно округлить его до ближайшего целого. –