Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.12.2017, 13:40   #1
SanYoka998
Новичок
 
Регистрация: 12.12.2017
Адрес: Хабаровск
Сообщений: 2
Репутация: 10

skype: alex.alex.9877
Печаль Пожалуйста помогите, я новичок.

Вот задание и код выполнения:
-------------------------------------------------------------
/*Известно, что x кг конфет стоит a рублей. Определите, сколько стоит y кг этих конфет, а также сколько кг конфет можно купить на k рублей. Все значения вводит пользователь.*/

import java.util.Scanner;

public class theSimplestArithmetic23 {
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.print("X кг стоит A рублей.\nX=");
double x=s.nextDouble();
System.out.print("A=");
double a=s.nextDouble();
System.out.print("Программа рассчитает для Y кг стоимость. И для K рублей массу.\nY=");
double y=s.nextDouble();
System.out.print("Для Y=" + y + " кг cтоимость " + a*y/x +".\nK=");
double k=s.nextDouble();
System.out.print("На K=" + k + " рублей можно купить " + k*x/a + " кг.");
}
}
----------------------------------------------------------------------------
Программа запускается и если вводить только целые значения, то работает. А если дроби, то вот:
-----------------------------------------
"X кг стоит A рублей.
X=2.5
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknow n Source)
at theSimplestArithmetic23.main(theSim plestArithmetic23.java:11)"
-----------------------------------------
Почему так? Функция nextDouble() должна принимать переменные типа double, но она этого не делает??? Как быть?
Только начинаю изучение Java. Прошу помочь опытных ребят

Среда разработки: Eclipse IDE for Java Developers
Version: Neon.3 Release (4.6.3)
SanYoka998 вне форума   Ответить с цитированием
Старый 12.12.2017, 14:15   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,412
Репутация: 5187
По умолчанию

может быть, в локале установлен другой разделитель целой и дробной частей?
попробуйте, например, ввести 2,5
если это так, то нужно или выставлять другую локаль для scanner или вводить, используя текущие настройки системы.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 13.12.2017, 07:54   #3
SanYoka998
Новичок
 
Регистрация: 12.12.2017
Адрес: Хабаровск
Сообщений: 2
Репутация: 10

skype: alex.alex.9877
Хорошо Спасибо!

Спасибо большое. Мысль о подобном исходе сразу откинул, не проверив, но вы правы: целую и дробную часть разделяет не точка, а запятая.
SanYoka998 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добрый день, я новичок помогите, пожалуйста, с кодом на с++: witalikcoral Помощь студентам 16 14.07.2015 00:18
Новичок,помогите написать програму Андрей3443 Паскаль 5 19.10.2014 12:57
Новичок,помогите написать програму галина01 Паскаль 7 06.10.2014 20:24
Новичок, помогите поменять местами код без ошибок SinimaWath Паскаль 4 04.10.2014 11:46
Ребята я новичок помогите..... Alex-jr Microsoft Office Excel 5 17.12.2007 08:02


21:18.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru