我如何 return 一个浮点格式的字符串向右小数点后两位?
How can I return a String in floating point format two decimal places to the right?
目前,我的 toString 方法显示的是一位数的整数余额
小数点后。它在 JUnit 测试中以这种方式显示:"expected <20.0> but was: <200.0>" 我需要 <200.00> 而不是 <200.0>。我尝试了几种不同的公式,但似乎无法理解。谢谢!
public class Bank {
private String name;
private double balance;
private String acctNum;
public Bank(String a, String n, double b) {
name = n;
acctNum = a;
balance = b;
}
public String toString() {
DecimalFormat f = new DecimalFormat("#.00");
// new DecimalFormat("###.##").format(getBalance());
return "Account Number: " + getAcctnum() + "Name: " + getName() + "Balance: "
+ (f.format(getBalance()));
}
// JUnit test case:
@Test
public void testToString() {
Bank b = new Bank("341ngr", "Joe Smoe", 200);
assertEquals("Joe Smoe", b.getName());
assertEquals("341ngr", b.getAcctnum());
assertEquals(20, b.getBalance(), 0.001);
}
}
您可以使用
String.format( "%.2f", yourdoublevalue);
在你的 assertEqual 行中,试试这个:
assertEquals("20.0",String.format("%.2f", b.getBalance()));
目前,我的 toString 方法显示的是一位数的整数余额 小数点后。它在 JUnit 测试中以这种方式显示:"expected <20.0> but was: <200.0>" 我需要 <200.00> 而不是 <200.0>。我尝试了几种不同的公式,但似乎无法理解。谢谢!
public class Bank {
private String name;
private double balance;
private String acctNum;
public Bank(String a, String n, double b) {
name = n;
acctNum = a;
balance = b;
}
public String toString() {
DecimalFormat f = new DecimalFormat("#.00");
// new DecimalFormat("###.##").format(getBalance());
return "Account Number: " + getAcctnum() + "Name: " + getName() + "Balance: "
+ (f.format(getBalance()));
}
// JUnit test case:
@Test
public void testToString() {
Bank b = new Bank("341ngr", "Joe Smoe", 200);
assertEquals("Joe Smoe", b.getName());
assertEquals("341ngr", b.getAcctnum());
assertEquals(20, b.getBalance(), 0.001);
}
}
您可以使用
String.format( "%.2f", yourdoublevalue);
在你的 assertEqual 行中,试试这个:
assertEquals("20.0",String.format("%.2f", b.getBalance()));