• ベストアンサー

〔java〕 計算結果に0をつける方法がわかりません。

こんにちは、やりたい事から説明させていただきます。 第一引数に5 第二引数に100 1×1,1×2,1×3,1×4,1×5・・・・1×100 2×1,2×2,2×3,2×4,2×5・・・・2×100 ・・・・・・・・・・・・ 5×1,5×2,5×3,5×4,5×5・・・・5×100 という計算をさせようと思っています。 計算結果は ------------------------------ 12345・・・・・ 246810・・・・・ ------------------------------ といって形では出せたのですが、 答えが一桁のものの前には[001] 答えが二桁のものの前には[020] といった形で0埋めしたいのです。 引数は毎回変わるので0埋めが[00001]などに なる場合もあります。 どうしてもうまくいかないのです。 どなたか教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ 最大値の桁数に合わせて、すべて0詰めで表示するということでしょうか。 ・ ポイントは次の2点となるでしょう。 1. 最大値の桁数mlenを求める。     [解法] 10で割るループを使用して、mlenを求める。         または、対数(log10)を利用する。 2. mlenになるように0詰めするには、System.out.printf(...)を使う。   以下のコードを参考にしてみてください。     [例] System.out.printf("%d\n",123); System.out.printf("%5d\n",123); System.out.printf("%05d\n",123); int mlen=5; System.out.printf("%0"+mlen+"d\n",123);

wahiko
質問者

お礼

お礼が遅くなりすみませんでした。 教えていただいたとおりに、書いたらうまく動きました。 本当にありがとうございました。 これからも、色々と教えて下さい。 ありがとうございました。

その他の回答 (2)

  • sy_0001
  • ベストアンサー率20% (1/5)
回答No.3

2さんの所にあるのと同じような内容ですが int val = 5; DecimalFormat exFormat = new DecimalFormat("000"); String strVal = exFormat.format(val); こんな感じで可能でしょうか これの結果は「005」になります。 無論変数valの値が10などになれば「010」のような形になります。

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/text/DecimalFormat.html
  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

こんにちは、 http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000087.html そのもの、ずばりなのでは。