使用setText格式化(换钱)(String.valueOf)

时间:2009-09-07 00:40:21

标签: java formatting

在我的代码中,有一些调用方法来设置某些JTextFields的值

fields[7].setText(String.valueOf(inv.get(currentDisplay).feeValue()));

这是有效的,它正在做我想要的但是值看起来像这样81.65849999999999

如何使String.valueOf的输出看起来像

的正常输出
System.out.printf( "$%,.2f", getDollarAmount() ) 

2 个答案:

答案 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()); 

参考:Formatting a Number Using a Custom Format