搞不懂出什么问题了

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

}

}


输出内容是:

3

3.0

3.0

这是为什么?


晴天小文友
浏览 1817回答 6
6回答

苏州河1991

float a = (float) (day / 7);double b = (double) (day / 5);这才是你想说的答案吧、、、、注意加括号

strawberryxx

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

慢半拍_0003

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

XhstormR

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

Night_Fever

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

yanrun

第一个输出3是因为day和7都是int型,所以结果也是int型但是后面的输出不知道是为什么,应该是3.28571444.6
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java