在做oj题的时候,发现一个测试用例老过不去,一直报错。
题要求大致是这样,总共会得出两个int类型的数字,要求做除法,返回数据类型为double。最开始是这样做的double c = 0;int a = 2;int b = 3; c=b/a;
最开始没有在意,后来发现虽然我用double类型接受值,但是结果还是为c = 1;不会为1.5,发现这个式子处理流程,先进行b/a =1 ,然后赋值给c,c实际上还是1。
然而 c = (double)b/a=1.5,这是因为先对b进行了类型转换,b为double类型之后,进行相除结果为double,不会自动取整。
然后(double)(b/a)=1,这是因为先进行了int类型的b/a,为1,之后转double还是1。大致就这样,以后做题时候要细心