为了账号安全,请及时绑定邮箱和手机立即绑定

搞不懂出什么问题了

搞不懂出什么问题了

晴天小文友 2016-07-03 20:17:51
public class test{ public static void main(String[] args){ int day=23; int avg=day/7; System.out.println(avg); float a=(float)day/7;  System.out.println(a); double b=(double)day/5; System.out.println(b); }}输出内容是:33.03.0这是为什么?
查看完整描述

6 回答

?
苏州河1991

TA贡献46条经验 获得超29个赞

float a = (float) (day / 7);

double b = (double) (day / 5);

这才是你想说的答案吧、、、、

注意加括号

查看完整回答
3 反对 回复 2016-07-04
?
strawberryxx

TA贡献2条经验 获得超1个赞

int avg=day/7;

这里的avg是整型的,而且一般除号后面是整型数字的话最后的结果也是默认整型的,然后变量a和b都被强制转换成float和double类型了

查看完整回答
反对 回复 2016-07-04
?
慢半拍_0003

TA贡献5条经验 获得超2个赞

3.0是怎么输出的?令人费解

查看完整回答
反对 回复 2016-07-04
?
XhstormR

TA贡献140条经验 获得超197个赞

3
3.2857144
4.6

以上正确输出,你CPU是冒牌的?

查看完整回答
反对 回复 2016-07-04
?
Night_Fever

TA贡献2条经验 获得超0个赞

楼主用的什么编译器?我用eclipse运行结果是:

3

3.2857144

4.6


查看完整回答
反对 回复 2016-07-03
?
yanrun

TA贡献317条经验 获得超240个赞

第一个输出3是因为day和7都是int型,所以结果也是int型但是后面的输出不知道是为什么,应该是

3.2857144

4.6


查看完整回答
反对 回复 2016-07-03
  • 6 回答
  • 0 关注
  • 1816 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信