java中char+int+double结果一定是double型吗
时间: 2023-12-23 12:03:12 浏览: 400
int、char、double与byte类型之间相互转换
4星 · 用户满意度95%
不完全正确。在Java中,char、int和double之间的运算会发生自动类型提升(widening conversion)。具体规则如下:
1. 如果有一个操作数是double类型,那么其他操作数会被转换为double类型,结果也是double类型。
2. 如果有一个操作数是float类型,那么其他操作数会被转换为float类型,结果也是float类型。
3. 如果有一个操作数是long类型,那么其他操作数会被转换为long类型,结果也是long类型。
4. 如果有一个操作数是int类型,那么其他操作数会被转换为int类型,结果也是int类型。
5. 如果两个操作数都是char、byte或short类型,那么它们会被提升为int类型进行计算,结果也是int类型。
在你提到的char+int+double的情况下,首先char和int会被提升为int类型进行相加,然后int和double会被提升为double类型进行相加。因此,最终的结果是double类型。
示例代码如下:
```java
char c = 'A';
int num = 10;
double d = 3.14;
double result = c + num + d;
System.out.println(result); // 输出:79.14
```
在上面的例子中,字符'A'被转换为对应的ASCII码值65(即int类型),然后与整数10相加得到75(int类型),最后与浮点数3.14相加得到79.14(double类型)作为结果。
阅读全文