Java三元运算符在字符串连接[重复]期间自动从int到double宽转换。

问题描述 投票:1回答:1

数据/文本/1.2 /

当值为1.0时,文件夹为

数据/文本/ 1 /

因此,我尝试使用三元运算符,但结果出乎意料。这是代码-

double key = 1.0; String path = "data/text/" + (key == 1.0 ? 1 : key) + "/"; System.out.println(path); String path2 = "data/text/" + 1 + "/"; System.out.println(path2);

输出如下:

数据/文本/1.0/

数据/文本/ 1 /

第一种情况下的值也不应该吗?

数据/文本/ 1 /

我期望该值,因为我正在使用整数文字。

这是在三元运算符的情况下int值被强制转换为double的错误吗?还是我出了点问题?

我正在尝试使用数组中的一些数值创建一组文件路径并读取这些文件。文件夹名称中具有确切的数值,但值为1.0时除外。因此,如果...

java string int double conditional-operator
1个回答
1
投票
您需要为三元运算选择一个确定的返回类型。它必须是第二和第三操作数都可以转换为的值,并且必须适合于如何使用三进制结果。
© www.soinside.com 2019 - 2024. All rights reserved.