Java 如何从JformattedTextfield检索货币格式值
当我试图检索计算值并将其传递给JformattedTextfield时,我遇到了这个问题,我知道由于JformattedTextfield(,)的原因,浮点不能接受1500.00。有没有办法绕过这个问题Java 如何从JformattedTextfield检索货币格式值,java,swing,textfield,number-formatting,jformattedtextfield,Java,Swing,Textfield,Number Formatting,Jformattedtextfield,当我试图检索计算值并将其传递给JformattedTextfield时,我遇到了这个问题,我知道由于JformattedTextfield(,)的原因,浮点不能接受1500.00。有没有办法绕过这个问题 private void SellButtonActionPerformed(java.awt.event.ActionEvent evt) { float foreign , sellingRa
private void SellButtonActionPerformed(java.awt.event.ActionEvent evt) {
float foreign , sellingRate, localAmount;
try{
DefaultTableModel dtm=(DefaultTableModel)p1.getModel();
int i = p1.getSelectedRow();
String s1=dtm.getValueAt(i,2).toString();
txt_rate.setText(s1);
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Select Currency First");
}
foreign = Float.parseFloat(txt_select.getText());
sellingRate = Float.parseFloat(txt_rate.getText());
localAmount = foreign / sellingRate;
txt_amount.setValue(localAmount);
}
错误消息
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "1,500.00"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
at java.lang.Float.parseFloat(Float.java:452)
我可以计算{1000}以下的数字
预期结果
您真的想让用户输入带有千位分隔符的货币吗?至少对于我迄今为止看到和开发的所有应用程序来说,这是非常罕见的 通常您仅将其用于显示目的,而不是用于输入。因此,用户将输入
1000
,然后通过NumberFormat.format()
格式化值,将其显示为1000.00
如果您确实希望这样输入,则应将其视为
字符串
,然后由NumberFormat.parse()
解析,如图所示。您真的希望用户使用千位分隔符输入货币吗?至少对于我迄今为止看到和开发的所有应用程序来说,这是非常罕见的
通常您仅将其用于显示目的,而不是用于输入。因此,用户将输入1000
,然后通过NumberFormat.format()
格式化值,将其显示为1000.00
如果您真的想要这样的输入,那么应该将其视为
字符串
,然后由NumberFormat.parse()
解析,如图所示。JTableint i=p1.getSelectedRow()中的疯狂汇率波动率;在所有情况下都应包装到if(i>-1)中,最好使用SelectionMode为我的SINGLEworks,使用JFormattedTextField为我提供数字实例Razy FX波动率,JTableint i=p1.getSelectedRow();在所有情况下都应该包装到if(i>-1)中,最好使用SelectionMode到SINGLEworks,使用JFormattedTextField和number实例