1

好的,所以我不明白为什么它说该方法没有在本地使用……私有 String formatNumber() 方法就是这样说的。

基本上我需要做的是有一个返回圆周的方法 - 另一种将数字四舍五入到小数点后 2 位并返回字符串的方法 - 以及另一种返回格式化版本的圆周的方法......

不难看出我正在尝试做什么,但它给了我上述错误,我无法弄清楚。

//figures out circumference
public  double getCircumference(){

    circumference = 2 * Math.PI * radius;

    return circumference;


}
    //takes string and turns back into a double
public double getFormattedCircumference(){

    double x = Double.parseDouble(format);
    return x;


}
//this method is giving the error of not being used locally...
    //method takes double and turns to string so that it can be formatted and it
      has to be a string
private String formatNumber(double x){

    x = circumference;
    NumberFormat number = NumberFormat.getNumberInstance();
    number.setMaximumFractionDigits(2);
    String format = number.format(x);
    return format;
}
4

2 回答 2

3

您已经声明了私有方法,但您没有在当前代码的任何地方使用它,因此编译器会警告您这一点(检查您的程序以查看您是否在任何地方调用此方法)。

顺便说一句,您看到的是警告而不是错误。您的代码仍应编译,并且程序仍将运行(如果不存在错误)。


编辑 1
你的方法有一个严重的问题,可能不止一个,因为它接受一个双参数,然后立即丢弃它。为什么?如果要格式化作为参数传入的数字,则不希望丢弃该参数。另外,您是否要创建此方法 public以便该类之外的对象可以调用它?此外,该方法将具有状态还是无状态?它会使用类的字段,还是只格式化传递给它的数字。如果是后者,那么它应该是一种static方法。

于 2012-10-18T22:07:04.907 回答
0

我都明白了。我让它变得比实际上更难。

//figures out circumference
public  double getCircumference(){

circumference = 2 * Math.PI * radius;

return circumference;


}

public String getFormattedCircumference(){

return formatNumber(getCircumference());

}


//formats to two decimal places.
private String formatNumber(double x){

NumberFormat number = NumberFormat.getNumberInstance();
number.setMaximumFractionDigits(2);
String format = number.format(x);
return format;
}
于 2012-10-22T17:48:43.670 回答