1

計算された値を取得してJformattedTextfieldに渡そうとすると、この問題が発生します。jformattedTextfield()が原因で、1,500.00をFloatで受け入れることができないことがわかっています。この問題を回避する方法はありますか?

 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)

千未満の団結

{ 1,000 }未満の数値を計算できます

期待される結果 期待される結果

4

1 に答える 1

1

本当にユーザーに千の区切り記号で通貨を入力させたいですか?少なくとも私がこれまでに見て開発したすべてのアプリケーションにとって、これは非常にまれです。

通常は、入力ではなく、表示目的でのみ使用します。したがって、ユーザーが入力する10001,000.00、値を。でフォーマットして表示されNumberFormat.format()ます。

そのような入力が本当に必要な場合は、aとして扱われ、次に示すようStringに解析される必要がありますNumberFormat.parse()

于 2013-03-20T13:41:53.703 に答える