将double转换为String,得到错误,说我无法将String转换为double

时间:2017-10-25 03:13:37

标签: java string double

我想我可能会疯了。我写了一个简单的方法,取一个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循环。

3 个答案:

答案 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;
}