返回双重添加到字符串并打印到2个小数位的方法

时间:2015-11-18 09:43:37

标签: java methods return decimal tostring

我正在尝试将从方法返回的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());
}

我很感激任何帮助。

1 个答案:

答案 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"