2015-07-03 3 views
-2

Я хочу знать, что произойдет, если я преобразовать это:Java «» преобразуется в Double

String ret = ""; 

дважды:

Double.parseDouble(ret); 

Когда я запускаю эту проблему у меня есть ошибки, говоря Invalid двойной : ""

+7

Если вы хотите выяснить это сами, зачем спрашивать его здесь? – Eran

+2

Что мешает вам узнать? –

+0

Возможный дубликат [В чем разница между Double.parseDouble (строка) и Double.valueOf (строка)?] (Http://stackoverflow.com/questions/10577610/what-is-difference-between-double-parsedoublestring-and -double-valueofstring) – ganeshvjy

ответ

0

Ниже реализации Java о Double.parseDouble

public static double parseDouble(String s) throws NumberFormatException { 
    return FloatingDecimal.readJavaFormatString(s).doubleValue(); 
} 

Теперь проверьте ниже код FloatingDecimal.readJavaFormatStringhere

in = in.trim(); // don't fool around with white space. throws NullPointerException if null 
     int l = in.length(); 
     if (l == 0) throw new NumberFormatException("empty String"); 

Чтобы ответить на ваш вопрос: Поскольку вы передаете пустую строку, вы получите NumberFormatException.

Исключение вы получите как показано ниже. Обратите внимание на сообщение («пустая строка») то же, что и в моем втором фрагменте кода.

Exception in thread "main" java.lang.NumberFormatException: empty String 
+0

Получил ваш ответ? Если нет, то напишите свой собственный ответ, чтобы другие могли воспользоваться им. Http://stackoverflow.com/help/accepted-answer – hagrawal

0

Будет выдано исключение java.lang.NumberFormatException.

0

Если вы попытаетесь запустить код

String ret = ""; 
double a = Double.parseDouble(); 

Компилятор бросить java.lang.NumberFormatException, смысл, в простых терминах, вы дали программу тип входа, который не может быть преобразован в двойной , Если вы хотите исправить это, просто дайте программе синтаксическую строку (например, 6 или 3.24). Вы также можете использовать try и catch, чтобы генерировать разные сообщения об ошибках, если указан неправильный ввод.

Пример:

public class Testing { 

    public static void main(String[] args) { 

     try{ 

      String ret = ""; 
      double a = Double.parseDouble(ret); 

     }catch(NumberFormatException e){ 

      System.out.println("Your error message here"); 
      //do something (your code here if the error is thrown) 

     } 
    } 
} 

Эта печать будет из Your error message here, потому что входной «» не может быть преобразован в два раза.

Подробнее о NumberFormatException: Click here.

Подробнее о разборке строк в парном разряде: Click here.

Подробнее о попытке и уловить: Click here.

+0

Спасибо. Моя программа возвращает «», когда я читаю файл. Этот файл находится внутри внутреннего хранилища устройства. Возвращает ли он "" из-за двойных значений, которые я сохраняю в нем? –

Смежные вопросы