我正在尝试将从方法返回的double打印到2位小数,但是我遇到了麻烦,因为在返回字符串方法时调用了该方法。
我尝试过使用printf,但是收到错误。我假设这是因为不仅有数字。
继承人的代码。
public double monthlyPay()
{
return annualSalary / 12;
}
public String toString()
{
return super.toString() + " Monthly Pay = " + monthlyPay();
}
public void print()
{
System.out.println(toString());
}
我很感激任何帮助。
答案 0 :(得分:0)
如果您尝试将monthlyPay()
剪切为2位小数,则可以使用:
double monthPay = (double)Math.round(monthlyPay() * 100d) / 100d
return super.toString() + " Monthly Pay = " + monthPay);
或者,您可以使用这样的方法来格式化字符串:
import java.text.DecimalFormat;
public static String formatNumber(int decimals, double number) {
StringBuilder sb = new StringBuilder(decimals + 2);
sb.append("#.");
for(int i = 0; i < decimals; i++) {
sb.append("0");
}
return new DecimalFormat(sb.toString()).format(number);
}
它肯定会输出零。在使用这些参数调用它时,例如:
String x = formatNumber(3,5.1000);
您的输出将为x = "5,100"