提取整数的最后 2 位 (Java)
Extract the last 2 digits of an integer (Java)
我有一些代码接受一个整数并提取最后 2 个数字并打印它们。例如,如果我输入 10000001,01 应该是 printout/output。这里的问题是由于某种原因程序的输出是 1。我不确定为什么输出显示为单个数字。
public class Main {
public static void main(String[] args) {
double num = 10000001;
double digit = num % 100;
System.out.println(digit);
}
}
你的问题很简单,答案也很简单。
在 java 中,int num = 1;
与 int num = 01;
相同(对于编译器而言,两者的意思相同 1
)因此,当您将 % 100
与您的号码一起使用时,它 returns 01
只不过是 1
for java 因为你将它存储到双数据类型变量(实际上当你在这一行中使用 double double digit = num % 100;
它打印 1.0 ,所以你应该在这里使用 int int digit = num % 100;
来删除小数点)。
因此,使用 int digit = num % 100;
将起作用并为您提供所有数字所需的结果,但数字前有 0
的数字除外。
要完全解决您的问题,您可以使用 String class.
String str = num+""; //connverting int to string
String digit = str.substring(str.length()-2, str.length());
这是因为您的计算值为“01”。而 display java 将其视为“1”。您可以使用填充,但必须将该整数转换为字符串。
public static void main(String []args){
double num = 10000001;
int digit =(int) num%100;
String padding =String.format("%02d",digit);
System.out.println(padding);
}
或如果您使用字符串更好地获取二进制数,然后在字符串上使用 length() 显示最后两个数字。
您可以尝试的另一种方法是提取最后两位数字并打印为字符串。
int num = 10001;
int last_digit = num % 10; // extract the last digit
num /= 10; // modify the original number
int second_to_last_digit = num % 10; // extract second last digit
String str = String.valueOf(second_to_last_digit) + String.valueOf(last_digit); // convert and add strings
System.out.println(str); // print desired string
我有一些代码接受一个整数并提取最后 2 个数字并打印它们。例如,如果我输入 10000001,01 应该是 printout/output。这里的问题是由于某种原因程序的输出是 1。我不确定为什么输出显示为单个数字。
public class Main {
public static void main(String[] args) {
double num = 10000001;
double digit = num % 100;
System.out.println(digit);
}
}
你的问题很简单,答案也很简单。
在 java 中,int num = 1;
与 int num = 01;
相同(对于编译器而言,两者的意思相同 1
)因此,当您将 % 100
与您的号码一起使用时,它 returns 01
只不过是 1
for java 因为你将它存储到双数据类型变量(实际上当你在这一行中使用 double double digit = num % 100;
它打印 1.0 ,所以你应该在这里使用 int int digit = num % 100;
来删除小数点)。
因此,使用 int digit = num % 100;
将起作用并为您提供所有数字所需的结果,但数字前有 0
的数字除外。
要完全解决您的问题,您可以使用 String class.
String str = num+""; //connverting int to string
String digit = str.substring(str.length()-2, str.length());
这是因为您的计算值为“01”。而 display java 将其视为“1”。您可以使用填充,但必须将该整数转换为字符串。
public static void main(String []args){
double num = 10000001;
int digit =(int) num%100;
String padding =String.format("%02d",digit);
System.out.println(padding);
}
或如果您使用字符串更好地获取二进制数,然后在字符串上使用 length() 显示最后两个数字。
您可以尝试的另一种方法是提取最后两位数字并打印为字符串。
int num = 10001;
int last_digit = num % 10; // extract the last digit
num /= 10; // modify the original number
int second_to_last_digit = num % 10; // extract second last digit
String str = String.valueOf(second_to_last_digit) + String.valueOf(last_digit); // convert and add strings
System.out.println(str); // print desired string