我有一段代码根据已选择的所需输入和输出更改参数的值。因此,在下面的示例中,我计算球体的体积,然后根据用户用于输入的单位和用户为输出选择的单位,相应地操纵数字。
我的问题是,我所有的 if 语句都返回 false,并且无论选择什么,数字 10(来自 else)都会出现。我已经打印出 inputPref 和 outputPref 的值,它们看起来完全等于“mm”和“cubic cm”(例如),但仍然不会被 if 语句捕获。
有什么明显的错误吗?如果有帮助,则从共享首选项中加载两个变量“inputPref”和“outputPref”!
double volumeBase = 4 * piDouble * radius * radius * radius / 3;
double volume;
if(inputPref.equals("mm") || outputPref.equals("cubic cm"))
{
volume = volumeBase / 1000;
}
if(inputPref.equals("mm") || outputPref.equals("cubic metres"))
{
volume = volumeBase / 1000000000;
}
if(inputPref.equals("cm") || outputPref.equals("cubic mm"))
{
volume = volumeBase * 1000;
}
if(inputPref.equals("cm") || outputPref.equals("cubic metres"))
{
volume = volumeBase / 1000000;
}
if(inputPref.equals("metres") || outputPref.equals("cubic mm"))
{
volume = volumeBase * 1000000000;
}
if(inputPref.equals("metres") || outputPref.equals("cubic cm"))
{
volume = volumeBase * 1000000;
}
else
{
volume = 10;
}