Естьтонна потоковпо этой теме, но простых и однозначных ответов нет.
Может ли кто-нибудь подсказать мне, как навсегда отключить округление ячеек в CSV-файле, созданном скриптом?
По сути, '377635637222436751' преобразуется в '377635637222437000' автоматически, и это не совсем приемлемо для моих нужд.
Я попробовал это:
Инструменты->Параметры->Расчет->Расчет "Точность как показано"
и это:
Формат > Ячейки > Числа > Категория > (прокрутите вниз) Текст.
(но учитывая, что мой скрипт создает .csv -- этот вариант не очень хорош, так как это нужно делать после создания файла)
И ни один из них не работает. Число остается округленным — даже после форматирования столбца после создания файла.
У кого-нибудь есть предложения?
решение1
Насколько мне известно, в LibreOffice нет чисел произвольной точности (десятичных или целых). Так что если числопревышает диапазон длинного целого числаэтохранится как номер IEEE754и поэтому он имеет ограниченную точность.
Таким образом, по сути, в Calc нельзя выполнять вычисления с произвольной точностью, и если вы хотите прочитать длинное число как число, вам придется его округлить.
Если вам не нужно выполнять вычисления, используйте строку; введите csv
:
,
,
,12345678901234678901234567890
,"123456789012345678901234567890"
(обратите внимание на кавычки) и затем при чтении обязательно добавьте «цитируемое поле как текст» и правильный разделитель текста:
...и у вас есть
Теперь, если вы коснетесь, преобразуете, оцените строку, округление снова включится.
Возможно, вы можете использовать тип валюты, представляющий собой 64-битное целое число, но, насколько мне известно, нет способа принудительно задать это через csv
.