我正在用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
这将为您处理格式问题,您只需要提供一个有效的百分比。