double w=(double)q/5 要是变成double w=(double)(q/5)之后,为什么本来输出2.4改了之后输出变成2.0呢?
答案:1 悬赏:0 手机版
解决时间 2021-04-02 11:59
- 提问者网友:几叶到寒
- 2021-04-01 12:21
double w=(double)q/5 要是变成double w=(double)(q/5)之后,为什么本来输出2.4改了之后输出变成2.0呢?
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-04-01 13:34
// (double)q / 5; 强制类型转换的对象是q
// 将q强制转换成double类型,再除以5
double w = (double)q/5;
// (double) (q/5); 强制类型转换的对象是q/5后的结果
// q除以5后,再将结果转换成double类型
double w=(double)(q/5)追问double (2.4)=2.0 你的意思是这样吗? 但是为什么那?追答除法运算符“/”:
第一种:当参与运算的值均为整型时,结果为整型,舍去小数(不是四舍五入,而是直接舍弃小数部分)。
第二种:如果运算量中有一个为float或double型,结果都为double。
而你的程序中,q是int类型的12,5也是int类型的,所以区别如下:
1、(double)(q/5):(第一种)先算q/5等于2,然后结果2被强制转换类型为double,所以w=2.0
2、(double)q/5:(第二种)先将q强制转换类型为double,相当于12.0/5等于2.4,所以w=2.4
你可以尝试一下:
System.out.println(3/2); //输出结果是1
System.out.println(3/2.0); //输出结果是1.5
// 将q强制转换成double类型,再除以5
double w = (double)q/5;
// (double) (q/5); 强制类型转换的对象是q/5后的结果
// q除以5后,再将结果转换成double类型
double w=(double)(q/5)追问double (2.4)=2.0 你的意思是这样吗? 但是为什么那?追答除法运算符“/”:
第一种:当参与运算的值均为整型时,结果为整型,舍去小数(不是四舍五入,而是直接舍弃小数部分)。
第二种:如果运算量中有一个为float或double型,结果都为double。
而你的程序中,q是int类型的12,5也是int类型的,所以区别如下:
1、(double)(q/5):(第一种)先算q/5等于2,然后结果2被强制转换类型为double,所以w=2.0
2、(double)q/5:(第二种)先将q强制转换类型为double,相当于12.0/5等于2.4,所以w=2.4
你可以尝试一下:
System.out.println(3/2); //输出结果是1
System.out.println(3/2.0); //输出结果是1.5
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯