Java错误中的BigDecimal

Java错误中的BigDecimal,java,bigdecimal,Java,Bigdecimal,与价格有关的所有方面都存在错误/ 导入java.math.BigDecimal 公共类产品{ // Fields String name; String description; BigDecimal price = new BigDecimal(3.0); int quantity; String barcode; String image; static int count; // Constructors

与价格有关的所有方面都存在错误/

导入java.math.BigDecimal

公共类产品{

    // Fields
    String name;
    String description;
    BigDecimal price = new BigDecimal(3.0);
    int quantity;
    String barcode;
    String image;
    static int count;


    // Constructors
    public Product()
    {
        name = "";
        description = "";
        price = 0;       
        quantity = 0;
        barcode = "";
        image = "";
    }

    public Product(String n, String d, double p, int q, String b, String i)
    {
        name = n;
        description = d;
        price = p;
        quantity = q;
        barcode = b;
        image = i;
    }



    // Get/Set methods

    // description getter and setter
    public String getDescription()
    {
        return description;
    }

    public void setDescription(String d)
    {
        this.description = d;
    }


    // name getter and setter
    public String getName()
    {
        return name;
    }

    public void setName(String d)
    {
        this.name = d;
    }


    // price getter and setter
    public double getPrice()
    {
        return price;
    }

    public void setPrice(double d)
    {
        this.price = d;
    }


    // quantity getter and setter
    public int getQuantity()
    {
        return quantity;
    }

    public void setQuantity(int d)
    {
        this.quantity = d;
    }


    // barcode getter and setter
    public String getBarcode()
    {
        return barcode;
    }

    public void setBarcode(String d)
    {
        this.barcode = d;
    }


    // image getter and setter
    public String getImage()
    {
        return image;
    }

    public void setImage(String d)
    {
        this.image = d;
    }
}


我的问题是为什么我所有的价格部分都有错误。我需要它是一个大的十进制,但是如何修复错误呢?

你的构造函数给出了p的值,它是你的大十进制,是双精度的。您需要为它提供一个BigDecimal:)因此在arguemnts中,为“p”提供该值,而不是“double”


Java使用了一种叫做“静态检查”的东西,这意味着即使在您键入时,它也可以告诉您,例如,如果您将一个变量声明为BigDecimal,并且您尝试将其设置为另一种类型的变量,则会出现错误。如果你把鼠标悬停在变量下面的红色曲线上,它会给你非常有用的信息

感谢您告诉我们错误。请正确格式化您的代码!您没有解释错误是什么,在哪里发生的,是如何产生的,以及您预期会发生什么。您的错误是“无法将double分配给BigDecimal”。它告诉了您什么?我知道这个用户看起来对Java相当陌生,所以我们为什么不提供帮助,而不是被动攻击呢?