表达式x+y*a/x+b/y+c是从左往右进行运算的,当两个变量进行运算时,自动将精确度低的转换为精确度高的再进行运算
各种类型类型的精度比较为: char<int<long<float<double
运算顺序为下:
1.y*a/x:其中y*a,由于double类型精确度高,故将a由int转换为double,然后进行计算,结果为double类型,再/x,再将x转换为double类型,进行计算,结果为double类型
2.b/y:b为long,y为double,故将b转换为double,再进行计算,结果为double类型
3.x+y*a/x: +号前面为float类型,后面为double类型,故将x转换为double类型再进行计算,结果为double类型
4.x+y*a/x+b/y:第二个+号左右都为double,故直接运算,结果为double类型
5.x+y*a/x+b/y+c:第三个+号左边为double类型,右边为char类型,故将c转换为double类型,再进行元算,最后结果为double类型。 |