Задача курса

Go strings.Split и strconv.ParseFloat: сумма чисел в строке

Курс «Golang с нуля» · урок «Пакеты strings и strconv: поиск, разбивка, замена и преобразование типов»

Условие

Сумма позиций чека

На кассе супермаркета кассир набирает цены всех товаров в одну строку, разделяя их запятыми, — быстрый способ передать данные о чеке без лишних формальностей. Программа должна разобрать эту строку, аккуратно убрать случайные пробелы вокруг каждого значения и сложить все цены в итоговую сумму.

Если все поля содержат корректные числа, результат выводится с двумя знаками после десятичной точки — именно так, как принято указывать денежные суммы в чеке. Обработка идёт последовательно: как только встречается первое поле, которое не удаётся распознать как число, программа немедленно сообщает об ошибке и указывает проблемное значение.

Что нужно сделать

Допишите только sumReceipt. Разберите простую строку с разделителем-запятой с помощью функций пакетов strings и strconv, изученных в уроке. Пробелы вокруг значений не должны мешать разбору. При первой ошибке верните очищенное проблемное поле и false; пустое поле тоже считается ошибкой. При успехе верните сумму и true. Чтение одной строки и печать уже даны в main.

Формат ввода

Одна строка чисел, разделённых запятыми. Кавычек и экранирования нет.

Формат вывода

При успехе: total=S, где S напечатано с двумя знаками после точки. При ошибке: invalid=F, где F — первое очищенное поле, которое не удалось разобрать.

Пример

Ввод:
1.5, 2, 3.0

Вывод:
total=6.50

Примеры

Пример 1

Ввод
1.5, 2, 3.0
Ожидаемый результат
total=6.50

Попробуйте решить

РешениеGo
Без регистрации · результат не сохраняется