赞
踩
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner stdIn = new Scanner(System.in);
-
- System.out.println("计算整数值x和y的平均值。");
- System.out.print("x的值:"); int x = stdIn.nextInt();
- System.out.print("y的值:"); int y = stdIn.nextInt();
- double ave = (x + y) / 2; // 平均值
- System.out.println("x和y的平均值为" + ave + "。"); // 显示
- }
- }
输出:
原因:
在这样的运算中会默认执行被称为双目数值提升(binary numerical promotion)的类型转换。
在执行运符之前, int型操作数的值会先被提升为double型、int型的2会转换为double型的2.0,最终, 两个操作数都变成了double型, 因此a和b的运符结果都为double型。
双目数值提升的类型转换规则如下:
• 若有—个操作数为double型,则将另 —个操作数转换为double型
• 否则,若有一个操作数为float型,则将另 —个操作数转换为float型
• 否则,若有一个操作数为long型,则将另 —个操作数转换为long型
• 否则,将两个操作数都转换为int型
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner stdIn = new Scanner(System.in);
- System.out.println("计算整数值x和y的平均值。");
- System.out.print("x的值:"); int x = stdIn.nextInt();
- System.out.print("y的值:"); int y = stdIn.nextInt();
- double ave = (x + y) / 2.0; // 平均值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。