代码之家  ›  专栏  ›  技术社区  ›  ocram

解析不同的数据类型Java

  •  -1
  • ocram  · 技术社区  · 8 年前

    自从 int 不如 double 我认为在将其解析为方法时需要强制转换它。然而,下面的代码运行良好。为什么?

    public class MyClass {
    
        public static void main(String[] args) {
            System.out.println(met(3/2));
        }
    
        static String met(int i){
            return "This is what I get " + i;
        }
    
    }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Andreas dfa    8 年前

    当你这么做的时候 3/2 那不会给你双重结果。整数除法发生,结果被截断为整数。因此,不需要铸造。为了获得双精度结果,需要将其中一个强制转换为双精度,以便得到一个编译器错误,从而将其强制转换为双重精度。

    试着做 met(3d / 2) ,然后您会遇到预期的编译器错误。