На главную

DF-ТРД-006 · Инструменты для трейдинга

Десятичный разделитель в выгрузке операций: как избежать ошибки импорта

Редакция Deskforge · 31 октября 2026 · 5 мин чтения
Десятичный разделитель в выгрузке операций: как избежать ошибки импорта
Из статьи вы узнаете
  • почему один файл по-разному читается в разных программах
  • как определить разделители до импорта
  • почему массовая замена символов опасна
  • какими сверками проверить загруженные операции

Вы открыли выгрузку операций, а цена 1,08345 оказалась в двух столбцах. В другом файле значение 125.50 загрузилось как текст и не участвует в расчётах. Причина часто не в самих данных, а в том, как программа различает границы полей и дробную часть числа.

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

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

Почему запятая может разрушить строку?

CSV буквально означает значения, разделённые запятыми: именно такой распространённый вариант описывает RFC 4180. На практике этим сокращением иногда называют любой текстовый файл с разделителями. W3C отмечает это нестрогое употребление, но для более широкого класса файлов использует понятие табличных данных. Сам RFC имеет информационный статус и не задаёт единственный обязательный формат для всех программ.

Допустим, строка должна содержать номер операции, цену и объём. Запись 9142,1,08345,0,10 неоднозначна: программа с запятой в роли границы увидит пять полей вместо трёх. Если столбцы разделены точкой с запятой, строка 9142;1,08345;0,10 уже разбирается однозначно при условии, что импортёр понимает запятую как десятичный знак.

Кавычки защищают границу поля, но не определяют тип значения. Строка "1,08345" может остаться текстом, если программа ожидает десятичную точку. Поэтому нужно отдельно задать два правила: каким символом разделены столбцы и каким символом отделена дробная часть.

Что определить до загрузки файла?

Откройте копию выгрузки в текстовом редакторе, а не в табличной программе. Посмотрите заголовок и несколько строк из начала, середины и конца файла. Зафиксируйте число столбцов, разделитель полей, вид цены и объёма, наличие кавычек и пробелов внутри чисел.

Не путайте десятичный знак с разделителем разрядов. Значения 1234,56, 1 234,56 и 1.234,56 могут обозначать одно число, но требуют разных правил разбора. LibreOffice Calc прямо указывает, что распознавание десятичных и группирующих символов зависит от выбранного языка и региона.

Excel по умолчанию использует системные разделители. В его настройках их можно временно заменить, однако это влияет на то, как программа распознаёт и показывает числа. Документация Microsoft также связывает десятичный знак и стандартный разделитель списка при сохранении CSV.

Для регулярной передачи данных лучше записать формат рядом с выгрузкой: кодировку, разделитель столбцов, десятичный знак, названия и типы полей. В рекомендациях W3C CSV on the Web эти свойства разделены: delimiter описывает диалект таблицы, а decimalChar и groupChar — формат числового типа.

Как импортировать без опасной замены символов?

Используйте мастер импорта или настройки загрузчика. Сначала выберите фактический разделитель полей и убедитесь в предпросмотре, что каждая строка разбилась на ожидаемое число столбцов. Затем укажите язык данных либо десятичный знак для числовых колонок.

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

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

Для повторяющейся обработки зафиксируйте это правило в загрузчике. При разработке и проверке торговых инструментов формат входного файла стоит считать частью технических требований: одинаковая выгрузка должна разбираться одинаково независимо от настроек рабочего компьютера.

Как понять, что числа загрузились правильно?

Начните со структуры. Число строк после импорта должно совпасть с числом записей в исходнике с учётом заголовка, а каждая строка — содержать ожидаемое число полей. Отдельный порядок такой проверки разобран в статье как проверить полноту CSV с торговыми операциями.

Затем проверьте типы и диапазоны. Цена, объём, комиссия и финансовый результат должны быть числами, а не текстом. Посмотрите минимальное и максимальное значения, число пустых ячеек и количество строк, где преобразование завершилось ошибкой.

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

Импорт можно принимать, когда сошлись структура, контрольные записи и агрегаты. Красивое отображение таблицы этого не доказывает: значение может выглядеть как число, но храниться текстом или быть разобрано с неверным масштабом.

Источники


Материал носит информационный характер и описывает разработку и проверку программных инструментов. Он не является индивидуальной инвестиционной рекомендацией и не содержит предложения совершить сделку. Deskforge не является брокером, дилером, управляющей компанией или инвестиционным советником, не управляет средствами клиентов и не совершает сделок за них. Торговля на финансовых рынках связана с риском потери капитала; результаты тестирования на исторических данных и прошлые результаты не гарантируют будущих. Решение о сделках пользователь принимает самостоятельно.

Назад

Deskforge на связи

Где нас найти

Нажмите на карточку или наведите камеру на QR-код.