Сверка записей

Десятичная запятая и разделитель CSV

Запятая в числе «12,5» и запятая как граница поля — разные символы по роли. В CSV с десятичной запятой удобно применять точку с запятой между полями либо заключать поле в явные кавычки.

Два значения одного знака

В числе «12,5» запятая отделяет целую часть от дробной. В строке CSV запятая может отделять одно поле от другого. Без дополнительного соглашения строка «Команда,12,5,3» допускает разные разбиения: четыре поля «Команда», «12», «5», «3» либо три поля, где второе значение равно 12,5.

Граница поля должна быть однозначной для всей записи. Это свойство задаёт формат файла, а не спортивная дисциплина и не смысл показателя.

Два однозначных варианта

Вымышленный пример: нужно записать строку с полями «Команда», «Точность», «Разница»: «Вектор», 12,5 и −3. При разделителе «;» строка выглядит так: «Вектор;12,5;-3». Здесь десятичная запятая остаётся частью второго поля, а границы полей видны по точкам с запятой.

Если в файле принят разделитель-запятая, дробное поле заключают в кавычки: «Вектор,"12,5",-3». Кавычки явно показывают, что запятая внутри «12,5» не завершает поле. Отрицательный знак относится к числу −3 и не является разделителем.

Что записать рядом с файлом

В досье или журнале преобразований полезно указать кодировку, разделитель, знак десятичной части и правило кавычек. Например: «рабочая выгрузка; разделитель ; ; десятичный знак , ; исходные значения не округлялись». Такая запись объясняет структуру файла без предположений о программе, в которой его откроют.

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

Когда нельзя механически заменить все запятые

Замена каждой запятой на точку с запятой испортит дробные значения: «12,5» превратится в два поля. Аналогично нельзя автоматически считать любую точку десятичным знаком: она может быть частью идентификатора, даты или названия файла.

Если в одном столбце встречаются и «12,5», и «12.5», требуется сохранить исходные текстовые значения и выяснить правило конкретного источника. До этого оба написания нельзя безоговорочно объединять как одинаковые числовые данные.

Источники и методика