gpt4 book ai didi

Java - toString 格式化(格式化 double )

转载 作者:行者123 更新时间:2023-12-01 11:18:09 27 4
gpt4 key购买 nike

我正在从事的项目需要使用 toString 方法打印银行帐户余额。我不允许向当前程序添加任何方法,但我需要将 myBalance 变量格式化为 double 型,该变量保留两位小数而不是一位。在这个特定的实例中,我的程序应该打印 8.03,但它打印的是 8.0。

这是我的 toString 方法:

   public String toString()
{
return"SavingsAccount[owner: " + myName +
", balance: " + myBalance +
", interest rate: " + myInterestRate +
",\n number of withdrawals this month: " + myMonthlyWithdrawCount +
", service charges for this month: " +
myMonthlyServiceCharges + ", myStatusIsActive: " +
myStatusIsActive + "]";
}

我对 Java 还很陌生,所以我想知道是否有一种方法可以将 %.2f 实现到字符串中的某处,以仅格式化 myBalance 变量。谢谢!

最佳答案

为此使用String.format(...):

@Override
public String toString() {
return "SavingsAccount[owner: " + myName +
", balance: " + String.format("%.2f", myBalance) +
", interest rate: " + String.format("%.2f", myInterestRate) +
",\n number of withdrawals this month: " + myMonthlyWithdrawCount +
", service charges for this month: " +
myMonthlyServiceCharges + ", myStatusIsActive: " +
myStatusIsActive + "]";
}

或更简洁地说:

@Override
public String toString() {
String result = String.format("[owner: %s, balance: %.2f, interest rate: %.2f%n" +
"number of withdrawals this month: %d, service charges for this month: %.2f, " +
"myStatusIsActive: %s]",
myName, myBalance, myInterestRate, myMonthlyWithdrawCount,
myMonthlyServiceCharges, myStatusIsActive);
return result;
}

请注意,khelwood 询问我使用 "%n" 作为换行标记,而不是通常的 "\n" 字符串。我使用 %n 因为这将允许 java.util.Formatter 获取特定于平台的换行符,特别是当我想将字符串写入文件时非常有用。请注意,String.format(...)以及System.out.printf(...)和类似方法使用java.util.Formatter 在后台,所以这也适用于他们。

关于Java - toString 格式化(格式化 double ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com