为什么不输出2.5 反而输出2.0呢


import java.util.Scanner;

/*
 *  先手动输入消费金额,再输入,抽到的折扣,计算出折后价格
 *  
 */
public class Exam03 {

    public static void main(String[] args) {
        System.out.print("消费金额:");
        Scanner s = new Scanner(System.in);
        int i = s.nextInt();
        System.out.print("请输入折扣:");
        int m = s.nextInt();
        double n = i*m/10;
        System.out.println("最终的金额为:"+n);

    }

}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/434513139736139.png "#left")

跟语言的类型系统设计有关。Java、C、C++这类语言中都是整数在自动类型提升的低层次上,要遇到显式的浮点数据才会将整数提升为浮点;整数与整数运算不会触发类型提升,自然得到的还是整数。
也就是,整数运算先得到整数结果,然后再赋值给double。
如有帮助,望采纳!谢谢