0

私は10進数で構成される配列リストを持っており、この配列リストの最後の4つの要素の平均を取ることになっています.そして、これらの有理数は文字列のタイプです.

プライベートボイド平均(文字列信頼度){

    if(myList.size() >= 4) {

    String  t = myList.get(myList.size()-1); 
    String  d = myList.get(myList.size()-2); 
    String  f = myList.get(myList.size()-3);
    String  h = myList.get(myList.size()-4);    

    String s = (t + d + f+h) ;
    long fin = Long.parseLong(s);
    long result = fin/4 ;
    System.out.println("Average is: "+result);
    }

しかし、この方法は機能しません。どのような変更を行うべきか、またはこれを行うためのアドバイスを教えてください。よろしくお願いします!!!

4

3 に答える 3

0

Long.parseLong()が返すものを反映するように型を変更することを覚えている限り、Colleenの答えは良いです。返信しますが、私は新しすぎます。

if(myList.size() >= 4) {

    Double t = Double.parseLong(myList.get(conf.size()-1)); 
    Double  d = Double.pareseLong(myList.get(conf.size()-2)); 
    Double  f = Double.parseLong(myList.get(conf.size()-3));
    Double  h = Double.parseLong(myList.get(conf.size()-4));  

    Double result = (t + d + f + h) / 3 ;

    System.out.println("meanAsrConfidence is: "+result);
}
于 2013-02-12T18:17:49.647 に答える
0

追加するに変換する必要があります。+on Strings は連結を意味します。

    if(myList.size() >= 4) {

    //I'm guessing all of these conf.size() calls are meant to be myList.size()
    double  t = Double.parseDouble(myList.get(conf.size()-1)); 
    double  d = Double.pareseDouble(myList.get(conf.size()-2)); 
    double  f = Double.parseDouble(myList.get(conf.size()-3));
    double  h = Double.parseDoublemyList.get(conf.size()-4));   

    double s = (t + d + f+h) ;
    double result = s/3 ; //should be 4
    System.out.println("meanAsrConfidence is: "+result);
    }

あなたが今やっていることは、例えば:

t=1, d=2, f=3, h=4
s = 1234

また:

  1. 3 ではなく 4 で割る必要があります
  2. は何confですか?なぜあなたは電話していないのmyList.size()ですか?
  3. おそらく渡したいときに、引数として文字列を渡していますmyList
于 2013-02-12T18:12:22.363 に答える
0

あなたの問題はそのString s = (t + d + f+h)部分です。現在、4 つの文字列を追加しています。最初にそれらを変換する必要があります。

そして、あなたの結果は間違っています。3 ではなく 4 で割る必要があります。

于 2013-02-12T18:12:57.900 に答える