Java 使用setText(String.valueOf)格式化(货币)
在我的代码中,有一些对方法的调用,该方法设置了一些JTextFields的值Java 使用setText(String.valueOf)格式化(货币),java,formatting,Java,Formatting,在我的代码中,有一些对方法的调用,该方法设置了一些JTextFields的值 fields[7].setText(String.valueOf(inv.get(currentDisplay).feeValue())); 这是可行的,它正在做我想要的事情,但是值看起来像81.65849999999 如何使String.valueOf的输出看起来像的正常输出 System.out.printf( "$%,.2f", getDollarAmount() ) 使用类。下面是一个我认为会有帮助的例子
fields[7].setText(String.valueOf(inv.get(currentDisplay).feeValue()));
这是可行的,它正在做我想要的事情,但是值看起来像81.65849999999
如何使String.valueOf的输出看起来像的正常输出
System.out.printf( "$%,.2f", getDollarAmount() )
使用类。下面是一个我认为会有帮助的例子。以下是示例链接中的代码:
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));
}
}
我唯一要提醒的是,它确实会进行舍入-您可以使用一些方法来调整此值…使用类。下面是一个我认为会有帮助的例子。以下是示例链接中的代码:
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));
}
}
我唯一要提醒的是,它确实会进行舍入-您可以使用一些方法来调整它…使用:
locale = Locale.CANADA;
String str = NumberFormat.getCurrencyInstance(locale).format(123.45);
//output: $123.45
备选方案:
NumberFormat formatter = new DecimalFormat("'$'###.00");
String str = formatter.format(getDollarAmount());
参考资料:使用:
locale = Locale.CANADA;
String str = NumberFormat.getCurrencyInstance(locale).format(123.45);
//output: $123.45
备选方案:
NumberFormat formatter = new DecimalFormat("'$'###.00");
String str = formatter.format(getDollarAmount());
参考资料:NumberFormat完成了此项工作。谢谢NumberFormat完成了这项工作。谢谢