0

我想通过该方法float为 a 添加一个值。但是,我收到此错误...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);
        }
    }
} 

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

4

3 回答 3

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);
于 2012-06-21T01:36:38.443 回答
1

这是因为 ArrayList 只能保存 Objects 而不是原语。请记住,诸如 int、float、boolean 等之类的东西被称为原语,它们与对象不同。为了让它工作,把你的浮动放入一个浮动包装器中:

浮动 myFloat = new Float(15.0f);

于 2012-06-21T01:38:06.633 回答
-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);
        }
  }
}
于 2012-06-21T01:40:02.223 回答