提取整数的最后 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