NumberFormat Java显示百分比



我正在用Java创建一个简单的贷款计算系统。我在文本框中输入利息百分比2时遇到了计算货币格式的问题,但它显示为200.00%这种格式,我不知道为什么。到目前为止,我所做的尝试附在下面。

NumberFormat percent = NumberFormat.getPercentInstance();
double   interset = Double.parseDouble(txtInterest.getText());
txtMonth2.setText(percent.format(interset));

我不知道是什么问题。

当您看到带有%符号的百分比时,该值通常是一个要除以100的数字(这是Java, C, Excel…的情况):

  • 在您的问题中,200%意味着您输入了2(200/100 = 2)。
  • 2%实际上是2/100 = 0.02 (

要么直接使用值为0.02,要么在格式化时将其分割;前者比较容易。

另外,您可以使用JFormattedTextField:
JFormattedTextField.AbstractFormatter editFormatter = new NumberFormatter(NumberFormat.getPercentInstance());
JFormattedTextField.AbstractFormatter displayFormatter = new NumberFormatter(NumberFormat.getPercentInstance());
DefaultFormatterFactory factory = new DefaultFormatterFactory(
displayFormatter, displayFormatter, editFormatter);
JFormattedTextField ftf = new JFormattedTextField(factory );
ftf.setValue(0.50); // 50%

这个例子改编自Java和javadoc教程:https://docs.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#factory

这将为您处理格式问题,您只需要提供一个有效的百分比。

最新更新