Три ячейки в электронной таблице намеренно меняют свои значения (по существу, округляя). Например, ячейка, которая должна читать 9969001500006276, преобразуется в 9969001500006270, позже, когда я снова открываю Excel, я нахожу число 9969001500006280.

Я попытался увеличить десятичные пробелы и изменить числовые форматы и размер ячейки.
Я даже попытался удалить колонку и воссоздать ее.
Я также пытался редактировать в Google Sheets и SoftMaker FreeOffice и (угадайте, что) я получил те же результаты.

Проблема повторяется только с тремя клетками, и другие клетки, кажется, функционируют достаточно хорошо. (Я - полный любитель с электронными таблицами. И я использую Office 2016.)

2 ответа2

2

Ответ:
Номера банковских счетов - это просто "идентификация", а не то, что вы бы использовали в математической формуле. Введите их с лидирующей ' и Excel не будет менять их в любое время. (Это равносильно необязательному форматированию "TEXT")

Исходная информация:
Как говорит @Scott Craner, для чисел существует ограничение точности в 16 цифр - из-за способа использования чисел в компьютере (т. Е. 64-битного формата с плавающей запятой, также известного как "двойная точность").
Чтобы преодолеть этот лимит, нужно использовать специальные приемы и утилиты - ЕСЛИ УКАЗАНО НОМЕР, который будет использоваться, например, для расчетов.

Подсистема командной строки linux bc - одна из таких утилит, и, например, в Python есть несколько способов обработки чисел с высокой точностью.

Ссылка: https://en.wikipedia.org/wiki/Double-precision_floating-point_format
«Между 2 ^ 52 = 4,503,599,627,370,496 и 2 ^ 53 = 9,007,199,254,740,992 представимые числа являются в точности целыми числами. Для следующего диапазона, от 2 ^ 53 до 2 ^ 54, все умножается на 2, поэтому представимые числа являются четными и т.д. И наоборот, для предыдущего диапазона от 25 ^ 1 до 2 ^ 52 интервал равен 0,5 , так далее. "

В глубине объяснения:
https://docs.python.org/3/tutorial/floatingpoint.html

0

такое поведение следует ожидать. Это связано с тем, что такие числа хранятся в SpreadSheets. Каждая ячейка является контейнером некоторых данных и метаданных. Например, когда вы сохраняете дату, иногда вы видите ее в виде числа 43475 когда не применен формат, тогда вы пойдете и попросите короткий формат даты, и она будет отображаться как 10/01/2019 . Таким образом, нужно было скомпрометировать эти данные и метаданные для этих ячеек в каждой электронной таблице.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .