Go strings.Split и strconv.ParseFloat: сумма чисел в строке
Сумма позиций чека
На кассе супермаркета кассир набирает цены всех товаров в одну строку, разделяя их запятыми, — быстрый способ передать данные о чеке без лишних формальностей. Программа должна разобрать эту строку, аккуратно убрать случайные пробелы вокруг каждого значения и сложить все цены в итоговую сумму.
Если все поля содержат корректные числа, результат выводится с двумя знаками после десятичной точки — именно так, как принято указывать денежные суммы в чеке. Обработка идёт последовательно: как только встречается первое поле, которое не удаётся распознать как число, программа немедленно сообщает об ошибке и указывает проблемное значение.
Что нужно сделать
Допишите только sumReceipt. Разберите простую строку с разделителем-запятой с помощью функций пакетов strings и strconv, изученных в уроке. Пробелы вокруг значений не должны мешать разбору. При первой ошибке верните очищенное проблемное поле и false; пустое поле тоже считается ошибкой. При успехе верните сумму и true. Чтение одной строки и печать уже даны в main.
Формат ввода
Одна строка чисел, разделённых запятыми. Кавычек и экранирования нет.
Формат вывода
При успехе: total=S, где S напечатано с двумя знаками после точки. При ошибке: invalid=F, где F — первое очищенное поле, которое не удалось разобрать.
Пример
Ввод:
1.5, 2, 3.0
Вывод:
total=6.50
Пример
- Ввод
1.5, 2, 3.0
- Вывод
total=6.50
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Go strings: проверка имени файла и расширения перед загрузкой
- Go fmt.Sprintf: форматирование строки и числа с двумя знаками
- Go encoding/json: фильтрация потока JSON по полю alert
- Go []rune: разворот строки UTF-8 без порчи кириллицы
- Go if и switch: несколько значений в одной ветке
- Go pointer receiver и встраивание struct: изменяемый счётчик
