3

数を割ると余りが出ますが、306 を 100 で割ると、306 / 100 = 3 となります。

しかし、% 演算子で残りを見つけた場合、たとえば 06 を取得したい

希望

306 % 100 = 06

実際に何が起こるか

306 % 100 = 6

1桁ではなく2桁が返されるように、これを回避する方法はありますか?

4

5 に答える 5

13

番号が返ってきます。6 と 06 は同じ値です。an int(および同様のタイプ) には、先頭の数字の概念がありません。

数値を特定の方法でフォーマットしたい場合は、それを文字列に変換するときに (これが問題になる唯一の場所です)、正しいフォーマット コードを選択するだけです。常に2 桁が必要ですか? で「00」の形式を使用しますDecimalFormat

import java.text.*;

class Test {

    public static void main(String args[]) throws Exception {
        NumberFormat format = new DecimalFormat("00");
        int value = 6;
        System.out.println(format.format(value)); // 06
    }
}

(またはString.format、またはその他の書式設定方法を使用します。重要な点は、数字 6 は単なる数字であるということです。数字をそのテキスト表現から切り離して考えてください。)

于 2012-10-05T06:14:49.360 に答える
2

これは、数値をフォーマットするだけの問題です。ここを参照してください。

于 2012-10-05T06:14:52.887 に答える
1

2 つの部分に分割します。最初に数学的に正しい答え6を得てから、好きなように提示してください。常に2桁が必要な場合は、次を使用できます。

int x = 306 % 100;
System.out.format("%02d", x);
于 2012-10-05T06:16:38.713 に答える
1

実際、どのコンピュータ言語でも、1 桁の整数の先頭に 0 は必要ありません。これは、どの言語でも出力として得られることはありません..

ただし、このように出力したい場合は、それに応じて値をフォーマットできます。

System.out.format("%02d", 6);
  • 最初の 0 は、数値に を埋め込むことを示しZEROs、2 番目の値 (2) は、必要な 0 の数を示します。
于 2012-10-05T06:17:54.880 に答える
0

私はこの6と06はまったく同じ値ですが、それでも値を6として取得したい場合は、これを試してください..

NumberFormat df = new DecimalFormat("00");
System.out.println(df.format(6));
于 2012-10-05T06:20:46.220 に答える