質問: Integer.parseInt(valueTwo); text01.setText(String.format("%,d", num) + chengeAtai + ""); } ``` ``` Java ``` ### 試したこと String.format内の変数や、()の位置を変更すれば対処出来るんじゃないかと思って試しました。 結果として、数字のボタンを続けて押しても桁が増えず、押されたボタンを基にどんどんと数値が足されていくだけでした。
回答: > > String.format内の変数や、()の位置を変更すれば対処出来るんじゃないかと思って試しました。 > > 結果として、数字のボタンを続けて押しても桁が増えず、押されたボタンを基にどんどんと数値が足されていくだけでした。 > > > バグは通常, 勘で対処するものではありません. そのような対応になってしまうのは, コードの意味を把握出来ていないためと思います. ``` String.format("%,d", num) + chengeAtai + "" ``` は, num = 1234, changeAtai = 5 の時, ・num を "%,d" でフォーマットした "1,234" ・changeAtai を文字列化した "5" ・""(空文字列) を繋げた "1,2345" を表します. つまり「3桁毎についていたカンマが、4桁毎につくように」なったのでは無く, 「3桁毎にカンマのついている文字列に, 1文字の文字列を繋げている」だけです. "12,345" を得たいのでしたら, num の桁を上げ(10倍)て一の位に changeAtai を入れてからフォーマットする ``` String.format("%,d", num * 10 + changeAtai) ``` となるかと思います.