Ожидается ли такое поведение Excel с большим шестнадцатеричным числом?

извините за расплывчатое название вопроса,но я не уверен, как лучше это сделать.

когда я вставляю следующее число в ячейку Excel:

5000097208326954

Это показывает

5E+15

Это нормально. Я понимаю это. Однако, когда я смотрю на панель функций, она выглядит как

5000097208326950

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

Это на Excel 2003 SP3.

мне не хватает какого-то тонкого ожидаемого поведения, или это ошибка?

9
задан lesmana
15.04.2023 19:37 Количество просмотров материала 2704
Распечатать страницу

5 ответов

Как sidenote, вы вероятно имеете шестнадцатеричное система счисления путать с научная нотация

6
отвечен GummiV 2023-04-17 03:25

Excel делает все, что это математика, как числа с плавающей запятой двойной точности. (Всего 64 двоичных бита)

Это дает вам от 14 до 15 значащих цифр в десятичном формате.

5000 097 208 326 954

16 цифр. Если вы делаете это в Excel...

A1 = 5000097208326954

A2 = A1 +1

A3 = A2-A1

A3 покажет 0.

полное раскрытие информации: я являюсь членом ACM, и я обязан сообщить общественность о рисках, связанных с вычислениями. Это в нашем кодексе поведения.

пожалуйста, не используйте Excel для чего-нибудь критического.

вы получите более точные ответы с карманный научный калькулятор.

Excel написан на C / C++ и использует 64-битные числа, он также использует библиотеки Microsoft с плавающей запятой для вычисления таких функций, как sin, cos и exp. Эти библиотеки довольно неточны по сравнению с научными, даже работая на том же размере числа.

плавающая точка подходит для простых вещей, но ужасно для научной работы или серьезной инженерии, они слишком неточны. Численные методы, где вы добавляете и умножаете числа снова и снова, становятся уродливыми быстро в плавающей точке, поскольку 15 цифр точности уходят, одна цифра каждые 4 умножения.

с плавающей точкой плохо для финансовой работы (0.2-бесконечное повторяющееся число в двоичной с плавающей точкой.) Так что если вы добавите 0,2 доллара 1000 раз, немного денег пропадающий. Программисты в финансовом мире используют бесконечные числа точности, где они должны (так же, как писать цифры на бумаге) И затем используйте специальные функции для выполнения математики денег, что, когда все округление складывается, деньги не пропадают.

программисты старой школы использовали FORTRAN для математики, которая делает математику в десятичном формате, как вы или я.библиотеки очень точны в FORTRAN, так как пользователи ожидают делать численные методы; вот для чего это нужно. Калькуляторы используют десятичные и внутренне тоже.

Я использовал Excel для воспроизведения математических ошибок округления в программах C.

вы можете получить довольно графики Вашего расчета безнадежно неправильно таким образом.

3
отвечен Tim Williscroft 2023-04-17 05:42

вы спрашиваете, почему последняя цифра отображается как 0 вместо 4, да?

Я считаю, что этой ссылка содержит ответ. если вы посмотрите в спецификации расчета Максимальное число точность 15 цифр. глядя на другие спецификации, похоже, что excel, вероятно, все еще держит полное значение введенного числа, поэтому, если вы используете число в Формуле, оно все равно должно вычисляться правильно.

честно говоря, весь значительные цифры ускользали от моего понимания в колледже, поэтому я не мог сказать вам, почему excel был настроен таким образом.

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

кроме того, как форматировать excel, чтобы распознать значение как находящееся в HEX, а не DEC?

2
отвечен Xantec 2023-04-17 07:59

Как уже отмечалось, это ограничение 15 значащих цифр, когда Excel хранит числа. Если это не номер, который вам нужно использовать для расчета чего-либо в соответствии с его значением, а скорее Ссылка, как серийный номер или код продукта, то ваш лучший вариант будет отформатировать ячейку в виде текста (а не по умолчанию общего) перед вставкой, так что он будет держать все цифры. Это также предотвратит его попытки быть умным и показать его в научной нотации, чтобы быть "полезно".

конечно, если это действительно шестнадцатеричное число (но вы случайно выбрали экзамен без цифры больше 9), то вы наверняка не хочу, чтобы Excel рассматривал его как число вообще. a) потому что он будет считать его десятичным, и это не удастся, когда в нем есть буквы. b) это означало бы, что число еще больше по величине, и если вы преобразуете его в десятичное число, вы получите более 15 цифр.

2
отвечен AdamV 2023-04-17 10:16

щелкните правой кнопкой мыши на ячейке или во всех ячейках > Формат ячеек > Выберите один из следующих форматов:

  • число (или его варианты): распознавать как числовое значение
  • текст: лучший вариант, потому что если вы можете использовать 0 в левой части, они будут отображаться

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

0
отвечен kokbira 2023-04-17 12:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх