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);
}
}

为什么不输出2.5 反而输出2.0呢
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
垂子帘 2021-11-26 21:02关注跟语言的类型系统设计有关。Java、C、C++这类语言中都是整数在自动类型提升的低层次上,要遇到显式的浮点数据才会将整数提升为浮点;整数与整数运算不会触发类型提升,自然得到的还是整数。
也就是,整数运算先得到整数结果,然后再赋值给double。
如有帮助,望采纳!谢谢本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报