Хобрук: Ваш путь к мастерству в программировании

нужна помощь по методу java showMessageDialog

вот мой код:

//DebugTwo4.java

import javax.swing.JOptionPane;

public class DebugTwo4
{
   public static void main(String[] args)
   {
      String costString;
      double cost;
      double tax = 0.06;

      costString = JOptionPane.showInputDialog(null,
         "Enter price of item you are buying", "Purchases",
         JOptionPane.INFORMATION_MESSAGE);
      cost = Double.parseDouble("cost");
      JOptionPane.showMessageDialog(null,"With " + tax * 100 + "% tax, purchase is $" + cost + cost     * tax);
      System.exit(0);
   }
}

и сообщение об ошибке: Исключение в потоке "main" java.lang.NumberFormatException: Для входной строки: "cost" в sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241) в java.lang.Double.parseDouble(Double .java:540) в DebugTwo4.main(DebugTwo4.java:16)

30.08.2013

  • cost = Double.parseDouble("cost"); Дважды проверьте эту строку. 30.08.2013
  • @user2731240 стоимость user2731240 - это строковое значение, а не переменная. 30.08.2013

Ответы:


1

"cost" не двойник...

Следовательно, это не удастся...

cost = Double.parseDouble("cost");

Я думаю, ты имел в виду

cost = Double.parseDouble(costString);

Вы также можете рассмотреть возможность использования JSpinner или даже JFormattedTextField, которые предназначены для ограничения того, что вводит пользователь...

30.08.2013
  • спасибо ~ я впервые пишу о переполнении стека, хотя я сам понял ошибку 06.09.2013

  • 2

    Вот проблема:

    Double.parseDouble("cost");
    

    Метод parseDouble ожидает строку, представляющую допустимое значение double, но вы передаете ему «стоимость», что является недопустимым.

    Вместо этого я считаю, что вам нужно передать ей переменную costString, поскольку она считывает в ней двойное значение:

    Double.parseDouble(costString);
    
    30.08.2013

    3
     try
      {
         cost = Double.valueOf(costString);
      }
     catch (NumberFormatException e)
      {
          System.out.println("NumberFormatException occured");
      }
    

    вместо

    Double.parseDouble("cost");
    
    30.08.2013
    Новые материалы

    Как сделать все элементы равными из списка в минимальных операциях в Python, используя math.ceil()
    Сегодня мы узнаем, как найти минимальные операции, необходимые для того, чтобы сделать все элементы из списка равными, используя Python в качестве языка программирования. Я использую PyCharm в..

    Создание пользовательских событий в React Native
    Обновление: это решение больше не работает, поскольку React Native не включает стандартную библиотеку Node. Однако есть автономные модули, в которых реализован API EventEmitter. Рассмотрите..

    За кулисами метода JavaScript Array.filter()
    Array.filter() — это встроенный в JavaScript метод, который создает новый массив со всеми элементами исходного массива, прошедшими определенный тест. Метод не изменяет исходный массив...

    Прогресс с моделью скрытой диффузии, часть 3 (машинное обучение)
    Выровняйте свои латентные данные: синтез видео высокого разрешения с моделями скрытой диффузии (arXiv) Автор: Андреас Блаттманн , Робин Ромбах , Хуан Линг , Тим Докхорн , Сын Ук Ким ,..

    Totaljs Flow: триггерные компоненты
    Total.js — это мощная и универсальная среда веб-приложений, которая предоставляет разработчикам ряд инструментов для оптимизации процесса разработки. Total.js Flow — самый популярный..

    Сквозное машинное обучение BigQuery
    Используйте Google Cloud BigQuery для участия в конкурсе Kaggle Я покажу вам, как прогнозировать выживших после катастрофы Титаника, используя только BigQuery и API Kaggle . С тех пор, как я..

    Руководство для начинающих по созданию модального окна с помощью React
    Недавно я узнал, как создать модальное окно, и решил написать об этом, чтобы помочь всем, кто ищет простое пошаговое руководство. Добавление модальных окон в ваше приложение может сэкономить..