• ベストアンサー

int型で「005」

たとえば、「5」という数字をint型で「05」や「005」と 表すことはできますか? 不可能でしょうか? 可能であれば、教えてください。 お願いします。

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

  • ベストアンサー
回答No.2

こんばんは。できますよ。DecimalFormatクラスを使います。DecimalFormatクラスのコンストラクタで書式を与えてやり、表示するときにformat()メソッドを使用します。この場合、コンストラクタに必要な分だけ0をかきます。例えば、「005」と表示したいなら DecimalFormat df = new DecimalFormat("000")とし、 int x = 5とすると、 System.out.println(df.format(x))とすると「005」になります。以下はサンプルソースです。 import java.text.DecimalFormat; class FormatTest { public static void main(String args[]) { int x = 1234567; DecimalFormat df = new DecimalFormat("00000000"); System.out.println("x=" + x); System.out.println("x=" +df.format(x)); } } なお、「0」でなく「#」をしようすると、空白で埋まります。 java.text.DecimalFormatをインポートしてくださいね。

nancy_and_andy
質問者

お礼

お礼遅くなり申し訳ございません。 確かにこの方法だと指定した桁数で出力できるようです。 本当は、int型に005などを入れたかったんですが、 無理のようですね。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

数値を0で始めて「005」のように書くと、それは8進数の数値であるとみなされます。 「05」「005」の場合は偶然同じ結果になりますが、 例えば「010」と書くと、それは10進数の「8」の意味になってしまいます。 また、「0x」で始めると16進数の数値として解釈されます。

参考URL:
http://summer.ics.nitech.ac.jp/~itota/javaspec/javaspec_3.html#HEADING7
nancy_and_andy
質問者

お礼

お礼遅くなり申し訳ございません。 ありがとうございました。 0ではじめるとすべて16進数の意味なんですね。

すると、全ての回答が全文表示されます。

関連するQ&A