这个是把一个数的整数和小数部分分开 我这是哪错了·

你要改成 

sc.nextDouble();
// 或
sc.nextFloat();

 

  public static void main(String[] asd) throws IOException {
    Scanner sc = new Scanner(System.in);
    double a = sc.nextDouble();
    int b = (int) a;
    System.out.println(b);
    System.out.println(a - b);
  }

 

你输入的是double 类型的值,而用整形函数nextInt 获取值,前后矛盾呀,改为nextDouble就正常了

  public static void main(String[] asd) throws IOException {
    Scanner sc = new Scanner(System.in);
    double a = sc.nextDouble();
    int b = (int) a;
    System.out.println(b);
    NumberFormat nf = NumberFormat.getInstance();
    System.out.println(nf.format(a - b));
  }

如果你不想要看到那么长一串,你就格式化一下再输出吧