我可以在除数时得到余数,但如果我要将 306 除以 100。例如 306 / 100 = 3
但是如果我通过 % 运算符找到剩余的,我想取回 06 ,例如
想要的
306 % 100 = 06
实际发生了什么
306 % 100 = 6
有没有办法解决这个问题,以便返回两位而不是一位?
我可以在除数时得到余数,但如果我要将 306 除以 100。例如 306 / 100 = 3
但是如果我通过 % 运算符找到剩余的,我想取回 06 ,例如
想要的
306 % 100 = 06
实际发生了什么
306 % 100 = 6
有没有办法解决这个问题,以便返回两位而不是一位?
你得到一个号码回来。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 只是一个数字;将数字与其在您脑海中的文本表示分开。)
这只是格式化数字的问题。见这里。
把它分成两部分;首先得到数学上正确的答案6
,然后以任何你想要的方式呈现它。如果你总是想要两位数,你可以使用:
int x = 306 % 100;
System.out.format("%02d", x);
实际上对于任何计算机语言,单个数字整数都不需要前导零。你永远不会得到它作为任何语言的输出..
但是,如果您希望它像这样打印,您可以相应地格式化您的值:-
System.out.format("%02d", 6);
ZEROs
,第二个值 (2) 表示你想要多少个 0。我这个 6 和 06 是一样的值,但是如果你想得到 6 的值,那么试试这个..
NumberFormat df = new DecimalFormat("00");
System.out.println(df.format(6));