閲覧有難うございます。
JavaのSwingで小数点も計算可能な電卓を作っています。
以前にもいくつか質問しており、いつも有難うございます。
今回もよろしくお願いします。
###質問内容
電卓の数値ボタンを押すと、ラベルに押された分だけの数値を表示しているようにしていますが、
9桁以上にになりますと押されているボタンの数値とは違う数字がラベルに出力されてしまいます。
恐らくfloatを使って定義しているのが原因なのかなと推測していますがどうしたらラベルにちゃんとした数字が表示されるかわかりません。
どうしたら解決できますでしょうか?
lang
1public class dentaku extends JFrame implements ActionListener{ 2 //各種ボタンの定義その他諸々・・・。 3 4 //ラベル表示用に使用 5 StringBuilder tempb = new StringBuilder(); 6 7 //桁区切りに使用 8 NumberFormat keta = NumberFormat.getNumberInstance(); 9 10 //コンストラクタ 11 public dentaku(String title) { 12 super(title); 13 //各種設定諸々 14 } 15 16public void actionPerformed(ActionEvent ae) { 17// TODO 自動生成されたメソッド・スタブ 18JButton source = (JButton)ae.getSource(); 19 20//数値ボタンが押された時の処理 21numberbutton(source); 22 23 24 25} 26 27private void numberbutton(JButton source){ 28 //各種ボタンが押された時の処理(省略) 29 30 //ラベルに桁区切りをした文字列の表示 31 lbl_a.setText(keta.format(Float.parseFloat(new String(tempb)))); 32} 33 34 35 36} 37 38//実行結果 391ボタンを9桁以上連打 40111,111,112…(以降全く1とは違う数字が並ぶ) 41 42
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/10 23:58