3

我可以在除数时得到余数,但如果我要将 306 除以 100。例如 306 / 100 = 3

但是如果我通过 % 运算符找到剩余的,我想取回 06 ,例如

想要的

306 % 100 = 06

实际发生了什么

306 % 100 = 6

有没有办法解决这个问题,以便返回两位而不是一位?

4

5 回答 5

13

你得到一个号码回来。6 和 06 是相同的值。An int(和类似类型)没有任何前导数字的概念。

如果您想以特定方式格式化数字,当您将其转换为字符串时(这是唯一重要的地方),那么只需选择正确的格式化代码即可。你总是想要两位数吗?使用“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

把它分成两部分;首先得到数学上正确的答案6,然后以任何你想要的方式呈现它。如果你总是想要两位数,你可以使用:

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

实际上对于任何计算机语言,单个数字整数都不需要前导零。你永远不会得到它作为任何语言的输出..

但是,如果您希望它像这样打印,您可以相应地格式化您的值:-

System.out.format("%02d", 6);
  • 第一个 0 表示你想用 填充你的数字ZEROs,第二个值 (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 回答