在我的代码中,有一些调用方法来设置某些JTextFields的值
fields[7].setText(String.valueOf(inv.get(currentDisplay).feeValue()));
这是有效的,它正在做我想要的但是值看起来像这样81.65849999999999
如何使String.valueOf的输出看起来像
的正常输出System.out.printf( "$%,.2f", getDollarAmount() )
答案 0 :(得分:3)
使用this课程。这是一个我认为有用的例子here。以下是示例链接中的代码:
import java.text.NumberFormat;
public class Mortgage {
public static void main(String[] args) {
double payment = Math.random() * 1000;
System.out.println("Your payment is ");
NumberFormat nf = NumberFormat.getCurrencyInstance();
System.out.println(nf.format(payment));
}
}
我唯一需要注意的是它确实可以进行四舍五入 - 虽然有一些方法可以用来调整它...
答案 1 :(得分:1)
使用:
locale = Locale.CANADA;
String str = NumberFormat.getCurrencyInstance(locale).format(123.45);
//output: $123.45
替代:
NumberFormat formatter = new DecimalFormat("'$'###.00");
String str = formatter.format(getDollarAmount());