2016-05-02 8 views
-10

私はarray.xmlに2つの配列を持っています。一つの配列にはフィートインチの値が入っていて、別の配列にはセンチメートル単位の値が入っています。私はユーザーがフィートインチでいくつかの値を選択するとき、私はセンチメートルで対応する値を表示することができます。 今私は標準的な公式を使用して変換しようとしていたが、それは私に正確な値を与えていない。ここ は私のコードです:Javaの2つの配列を比較する

// 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+""); 

と変換のため、このリンク: -​​

+0

私が使った数式は間違っていますか? –

+0

これは直接変換です....あなたのコードは読めません。 ROUND関数のために答えが正しくない可能性があります....常に、直接変換を使用することを忘れないでください。 – sushildlh

+0

しかし、私はそれを最も近い整数に丸める必要があります。 –

関連する問題