Java 如何以浮点格式返回右边两位小数的字符串?
当前,我的toString方法显示带有一位数字的整数余额 小数点后。它在JUnit测试中以这种方式显示:“预期,但实际上是:”我需要而不是。我试过几种不同的公式,但似乎都不懂。谢谢Java 如何以浮点格式返回右边两位小数的字符串?,java,string,junit,decimal,decimalformat,Java,String,Junit,Decimal,Decimalformat,当前,我的toString方法显示带有一位数字的整数余额 小数点后。它在JUnit测试中以这种方式显示:“预期,但实际上是:”我需要而不是。我试过几种不同的公式,但似乎都不懂。谢谢 public class Bank { private String name; private double balance; private String acctNum; public Bank(String a, String n, double b) {
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()));
try String.format(“%.2f”,getBalance())给它一个try
return“Account Num:”+getAccountnum()+“Name:”+getCustomerName()+“Balance:”+String.format(“%.2f”,getBalance())代码>没有改变,但谢谢!在您的assertEqual行中,尝试以下内容:assertEquals(“20.0”,String.format(“%.2f”,b.getBalance()))非常感谢!这最终奏效了:assertEquals(200.0,String.format(“%.2f”,b.getBalance())我希望我能投你一票@我把它写在答案里,这样问题就可以结束了