我想我可能会疯了。我写了一个简单的方法,取一个double,转换为字符串,取出小数并反转数字的顺序。每次我运行它时,我都会收到错误消息,说我无法将String更改为double,这是正确的,但也与我正在做的完全相反。 我试过双+ ="&#34 ;;和double = Double.toString(double);,我得到同样的错误。完整的方法:
public static String favNumber(double bank) {
bank = Double.toString(bank);
bank = bank.replace('.',"");
String ret = "";
int end = bank.length() - 1;
for(int i = end; i >= 0; i--) {
char add = bank.charAt(i);
ret += add;
}
return ret;
}
其他内容:我发誓标识符名称在我的代码的宏计划中有意义(对于学校作业),我不允许使用StringBuilder,因此for循环。
答案 0 :(得分:4)
在您的代码中,变量bank
的类型为double
- 您已在第一组括号中声明了它。
然后在第二行,您使用String
类型的表达式 - 即Double.toString(bank)
,并尝试将其分配给变量bank
。也就是说,您正在尝试将类型String
的值分配给类型为double
的变量 - 这就是编译器阻止您进行的操作。
答案 1 :(得分:3)
bank
的类型为double
。然后,您无法为其分配String
值。这样做:
String bankStr = Double.toString(bank);
答案 2 :(得分:3)
您试图将String
返回的Double.toString
分配回来
bank
这是原始的double
变量。在这里,我使用了两个不同的变量,一个是double
,另一个是String
...
public static String favNumber(double thedouble) {
String bank = Double.toString(thedouble);
bank = bank.replace('.',"");
String ret = "";
int end = bank.length() - 1;
for(int i = end; i >= 0; i--) {
char add = bank.charAt(i);
ret += add;
}
return ret;
}