繁体   English   中英

是否可以将类定义为Java的双精度类型?

[英]Its possible to define class as double type java?

我在java中有以下课程:

public class Percentage
{

    private double n;

    Percentage (double n )
    {
        this.n=n;
    }

    public void setN()
    {
        this.n=n;
    }

    public double getN()
    {
        return n;
    }

    public double percntage ()
    {
        return this.n/100;
    }
}

这个班级百分比将返回一个双精度值,但问题是我们无法使用以下值进行任何数学运算:

public static void main (String args[])
{
    Percentage p = new Percentage(5);
    double b=1;
    b=p*12; // this is error because the class Percentage in not of type double
}

是否有某种方法可以使类型的百分比增加一倍?

这是一个错误,因为您正在将Percentage对象乘以double值。 替代方法是

public static void main (String args[])
{
    Percentage p = new Percentage(5);
    double b=1;
    b=p.getN()*12; 
}

您不能使类类型为double 您可以改为在n值中执行操作。

b = p.getN()*12; 

您不能将类定义为double,因为double是原始类型。 您可以做的是其他用户建议的操作:

p.getN();

它将返回您需要的双精度值。

不,您不能使其表现为double ,但是(如BigDecimal )可以提供执行相关操作的方法。

由于您的代码似乎暗示n = 10表示10% ,即系数为0.10 ,因此您可以使用以下方法:

public double of(double value) {
    return value * this.n / 100d;
}

public double add(double value) {
    return value * (100d + this.n)) / 100d;
}

然后像这样使用它:

Percentage p = new Percentage(10);
double input = 55;
double d1 = p.of(input);  // 10% of 55 = 5.5
double d2 = p.add(input); // 55 + 10% = 60.5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM