Округление чисел

  • 20
  • Недоступна
Считать с консоли 2 имени файла. Первый файл содержит вещественные(дробные) числа, разделенные пробелом. Например, 3.1415. Округлить числа до целых и записать через пробел во второй файл. Закрыть потоки. Принцип округления: 3.49 => 3 3.50 => 4 3.51 => 4 -3.49 => -3 -3.50 => -3 -3.51 => -4
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (270)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
среда, 10:16
ух ну и намаялся я сперва файл в байты, потом байты в чары, а чары в стрингбилдер, стрингбилдер в стринг, стринг в массив стрингов через сплит, далее каждый стринг из массива в дабл, округлил и в инт и снова в стрингбилдер, и его в строку, в чары, в байты и на помойку
Илья Джерихов19 уровень, Москва
18 июля, 12:24
видимо PrintStream не катит.....
Vitalik18 уровень, Москва
9 июля, 13:54
Если кому поможет (сделал для множества строк): 1. Записываем в List<String[ ]> arr все строчки разбивая все значения каждой строчки через split. 2. Далее через BufferedWriter двойным for each проходим по коллекции ибо в arr.get(0) хранится массив из String[ ] чисел. И т.д. :
for (String[] s : arr) {
            for (String test : s) {
                writer.write(Math.round(Double.parseDouble(test)) + " ");
            }
        }
it008825 уровень, Худжанд
9 июля, 06:57
сначала считаем байты в строковый тип s+=((char)is.read()) и split на помощь String d[] = s.split("\\s+"); - все дробные числа находятся в массиве отдельно без пробелов
Dr_Lex20 уровень, Чебоксары
5 июля, 21:32
Еще немного и я буду мастером по написанию спагетти-кода.
Dmitriy Fedorino20 уровень, Шанхай
30 июня, 00:14
Хорошая задача, однако нужно поправить условие, потому что в условии сказано "Первый файл содержит вещественные(дробные) числа, разделенные пробелом.". Однако я получил подсказку от "ментора" по пункту 3 "Учти, что файл может содержать целые числа"
Ксенія Українка22 уровень, Киев
4 июля, 10:09
гохспади, загугли что такое вещественные числа.
Seryozha Svetlov23 уровень, Тула
5 июля, 14:59
а ты загугли что такое ДРОБНЫЕ.
Ксенія Українка22 уровень, Киев
5 июля, 16:32
на 5/1 = 5.0000 - сокращенно можно записать как 5 в узких кругах людей окончиших 5й класс в "вещественные(дробные) числа" слово дробные пишется больше как напоминание, а не определение.
Seryozha Svetlov23 уровень, Тула
5 июля, 17:19
Вещественно число может быть дробным и целым. Вещественное число является целым, если его десятичное представление не содержит дробной части. 5 - это целое число, 5.0 это дробное.
Dmitriy Fedorino20 уровень, Шанхай
6 июля, 06:58
С точки зрения математики - все верно, целые числа относятся к вещественным числам, однако же в условии задачи утверждается (И ДАЕТСЯ ПОЯСНЕНИЕ В СКОБКАХ), что файл содержит ДРОБНЫЕ числа, что не предполагает содержание в файле чисел без десятичной части. Исходя из этого верно, что в файле будут содержаться только числа с плавающей точкой. Я имел в виду, что нужно убрать "(дробные)" из условия. Поскольку ты любезно предоставила повод погуглить, вот чтиво про типы данных, там есть 2 занимательнейших раздела про целочисленный тип данных и про числа с плавающей точкой :)
Ксенія Українка22 уровень, Киев
6 июля, 08:42
ладно, тема интересная, давайте разберем. с точки зрения математики вещественные состоят из рациональных и иррациональных. рациональные - числа, которые можно представить в виде дроби: +/- целое число / целое число кроме нуля. иррациональные - бесконечные дроби, типа квардратный корень с 2. в контексте "дробные" можно заменить как "не иррациональные". Кстати, в файле числа хранятся в виде символов, и типа вещественные в джава нет.
Dmitriy Fedorino20 уровень, Шанхай
7 июля, 14:01
С точки зрения типов данных в Java числа с плавающей точкой, часто называемые в других языках вещественными числами, используются при вычислениях, в которых требуется использование дробной части. В Java реализован стандартный (IEEE-754) набор типов для чисел с плавающей точкой — float и double и операторов для работы с ними. Ссылка Так как JavaRush больше относится к программированию, нежели к математике, я посмел предположить, что если в файле содержатся вещественные(дробные) числа, то среди них не будет чисел, которые не содержат плавающей точки. Спасибо за столько щепетильное отношение к моему комментарию :)
Mike23 уровень, Москва
19 июля, 18:52
6 попыток... капец.. ну как так можно условие писать.... как я мог догадаться. что числа через пробел, а не с новой строки!!
Татьяна20 уровень, Ростов на Дону
27 июня, 20:36
18 уровень, а условие задачи дочитываю по мере появления ошибок в валидаторе.... Считывала строки т.к. считала, что в первом файле числа в столбик располагаются... Округлять Math.round научила одна из прошлых задач.
Yulia26 уровень
18 июня, 23:13
Люди, используйте готовый метод Math.round, я написала свой метод округления, рабочее решение валидатор не принял.
Dmitriy Gordievskiy33 уровень, Львов
17 июня, 11:02
FileReader FileWriter И Scanner Считываем содержимое файла в строку, парсим строку сканнером и делаем что надо с числами. Можно даже загнать поток FileReader прямо в Scanner без промежуточного буффера вроде строки
Alukard19 уровень, London
30 июня, 17:00
Аналогично сделал.
Ксенія Українка22 уровень, Киев
4 июля, 10:14
ага, напряму зчитати сканом - не приймає
Dmitriy Gordievskiy33 уровень, Львов
4 июля, 10:30
В мене прийняло
Ксенія Українка22 уровень, Киев
4 июля, 10:37
я робила сканер через
Scanner scan = new Scanner(new File(fileName1))
без буферредрідера і не приймало по створеню потоків. забубнила читати буфрідером а строку кормити в сканер - так прийняло.
Dmitriy Gordievskiy33 уровень, Львов
4 июля, 11:07
Наша Валя балувана )))
Антоний Шаламов19 уровень, Хабаровск
4 июля, 22:41
В условии вот так:
2. Для первого файла создай поток для чтения.
А вы в Scanner отправляете не поток, а объект File
Ксенія Українка22 уровень, Киев
5 июля, 07:13
смотрела реализацию в опенждк тут
public Scanner(File source) throws FileNotFoundException {
       this((ReadableByteChannel)(new FileInputStream(source).getChannel()));
   }
Антоний Шаламов19 уровень, Хабаровск
5 июля, 11:23
Скорее всего, условие задачи подразумевает создание потока явно. Во втором случае он создаётся неявно(автоматически)
Ксенія Українка22 уровень, Киев
5 июля, 12:12
спс. Думаю там проверка по ключевым словам в тексте кода.
Леонид25 уровень, Сургут
16 июня, 12:06
Победитель по жизни, часа 2 бился с задачей только из за того что для удобства вводил имена не с консоли а в самом коде, а потом забыл убрать это 👌