如何编写减小圆半径的方法

时间:2015-04-30 02:15:16

标签: java methods geometry

我之前从未问过这个问题,但是我很难搞清楚这个问题。我必须过度思考这个问题,因为这似乎是一个简单的问题。

  

完成shrink()类的Circle方法。

public class Circle 
    {

    private double radius;

    // constructor

    // postcondition: the instance variable is initialized

    public Circle(double rad) 
    {

    radius = rad;

    }

    // postcondition: reduces the radius of this Circle by a given percentage.

    // For example, if radius is 10.0, and percent is 20, then the new radius would be 8.0.

    public void shrink(int percent)
    {

    }

}

我的代码:

public void shrink(int percent) {

    radius = radius * (percent / 100);

}

3 个答案:

答案 0 :(得分:0)

如果您希望缩小百分比,请使用:

radius = radius * (1 - (percent / 100.0));

请注意100.0,而不是100,以防止整数除法。

答案 1 :(得分:-1)

看起来你试图划分两个整数然后得到一个双。如果你想使用百分比/ 100并得到一个双倍,那么你需要做

%/ 100.0

会强制进行类型转换。

答案 2 :(得分:-1)

我认为你应该采取public void shrink(double percent)

/* document that shrink factor is expected in percentage scale (i.e .2 , .5 (half) ) etc and  have bounds from (0,1)
*/
public void shrink(double percent) {

        radius = radius * (1 - percent);

    }

你应该得到一些保护,并检查他们是否通过1你没有;使它成为0