我之前从未问过这个问题,但是我很难搞清楚这个问题。我必须过度思考这个问题,因为这似乎是一个简单的问题。
完成
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);
}
答案 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