数を割ると余りが出ますが、306 を 100 で割ると、306 / 100 = 3 となります。
しかし、% 演算子で残りを見つけた場合、たとえば 06 を取得したい
希望
306 % 100 = 06
実際に何が起こるか
306 % 100 = 6
1桁ではなく2桁が返されるように、これを回避する方法はありますか?
数を割ると余りが出ますが、306 を 100 で割ると、306 / 100 = 3 となります。
しかし、% 演算子で残りを見つけた場合、たとえば 06 を取得したい
希望
306 % 100 = 06
実際に何が起こるか
306 % 100 = 6
1桁ではなく2桁が返されるように、これを回避する方法はありますか?
番号が返ってきます。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 は単なる数字であるということです。数字をそのテキスト表現から切り離して考えてください。)
これは、数値をフォーマットするだけの問題です。ここを参照してください。
2 つの部分に分割します。最初に数学的に正しい答え6
を得てから、好きなように提示してください。常に2桁が必要な場合は、次を使用できます。
int x = 306 % 100;
System.out.format("%02d", x);
実際、どのコンピュータ言語でも、1 桁の整数の先頭に 0 は必要ありません。これは、どの言語でも出力として得られることはありません..
ただし、このように出力したい場合は、それに応じて値をフォーマットできます。
System.out.format("%02d", 6);
ZEROs
、2 番目の値 (2) は、必要な 0 の数を示します。私はこの6と06はまったく同じ値ですが、それでも値を6として取得したい場合は、これを試してください..
NumberFormat df = new DecimalFormat("00");
System.out.println(df.format(6));