方法java.util.ArrayList.add(int,java.lang.Float)不适用

时间:2012-06-21 01:34:25

标签: java floating-point arraylist

我想通过float方法向float ArrayList添加.add()值。但是,我收到了这个错误......

no suitable method found for add(double)
method java.util.ArrayList.add(int,java.lang.Float) is not applicable
  (actual and formal argument lists differ in length)
method java.util.ArrayList.add(java.lang.Float) is not applicable
  (actual argument double cannot be converted to java.lang.Float by method invocation conversion)

这是我的代码......

class Exercise {
    public static void main(String[] args) {
        ArrayList<Float> floatList = new ArrayList<Float>();
        floatList.add(10.0);
        floatList.add(15.5);
        floatList.add(18.0);
        floatList.add(29.5);
        floatList.add(45.5);

        for(Float num : floatList){
            System.out.println("\n"+ num);
        }
    }
} 

有人可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:5)

默认情况下,java会使用double来提高精度,如果你想提供浮点数,你必须这样做:

ArrayList<Float> floatList = new ArrayList<Float>();
floatList.add(10.0f);
floatList.add(15.5f);
floatList.add(18.0f);
floatList.add(29.5f);
floatList.add(45.5f);

答案 1 :(得分:1)

这是因为ArrayList只能保存对象而不是基元。请记住,诸如int,float,boolean等之类的东西被称为基元,它们与对象不同。为了使其工作,请将您的浮动放入Float包装器中:

浮动myFloat = new Float(15.0f);

答案 2 :(得分:-2)

    import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.lang.math.NumberUtils;

/**
 *
 * @author electric grasshoper
 */
public class qweqweqweqwe {

    public static void main(String[] args) {
        //Float floatList;
        ArrayList<Float> floatList = new ArrayList<Float>();
        floatList.add(10.0f);
        floatList.add(15.5f);
        floatList.add(18.0f);
        floatList.add(29.5f);
        floatList.add(45.5f);

        for(Float num : floatList){
            System.out.println("\n"+ num);
        }
  }
}