OOo Calc странно считает (Decimal to Hex)

Модератор: /dev/random

Ответить
FlySnake
Сообщения: 992
ОС: openSUSE
Контактная информация:

OOo Calc странно считает

Сообщение FlySnake »

Всем привет
Недавно столкнулся с такой проблемой, скорее всего из недостатка знаний по работе с OOo, но всё же спрошу :)
Есть табличка с расчетами неких величин. Расчеты простые - в деления и преобразования dec<->hex. Основные расчеты идут в десятичной системе, а потом результыт перегоняется в хексовые.
Так вот в одной ячейке задана некая константа (пусть R). В следующей 60/R. Далее (60/R)^-1. Дальше ((60/R)^-1)/145e-6. Затем 413793/(((60/R)^-1)/145e-6). Результат получается правильный. Но дальше непонятки. Это нужно перегнать в хекс. Первое значение в таблице получается 15 (та самая константа). В хексе это F. Я пишу в ячейке =base(N,16) где N - ячейка с десятичным результатом. Но вместо F оно считает E. Далее в таблице 16, а оно преобразует это в F, но это неверно. И так далее все числа на 1 смещены. Выкрутился из ситуации инкрементированим десятичного значения =base((N+1),16) и вроде верно решил поставленую задачу. но теперь хочется выяснить почему так. Причем если просто написать в произвольное число, то же 15 в произвольную ячейку и таким же образом его конвертнуть, то всё нормально. Видимо это связано как-то с округлениями, но ведь десятичное деление делается не цельночисленое, да и результат получается целым числом и как-бы нечего округлять при преобразовании Dec->Hex. В аттаче файл с примером. Вся канитель в столбцах "Measured cadence" (H,I)
И ещё вопрос до кучи, возможно ли в OOo calc оперировать с числами в произвольной системе? Т.е. задать что в такой-то ячейке у меня число 11010010011 и это двоичное число, а не 11 милиардов, а потом взять поделить его на хекс 5FAC и получить результат в двоичном виде, или в хексе, или в десятичном - как будет задано. В хелпе нашел только преобразования и всё, и с теми непонятки
Вложения
calculation.tar.gz
(43.76 КБ) 18 скачиваний
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450
Контактная информация:

Re: OOo Calc странно считает

Сообщение Sleeping Daemon »

FlySnake писал(а):
20.06.2010 23:34
Всем привет
Недавно столкнулся с такой проблемой, скорее всего из недостатка знаний по работе с OOo, но всё же спрошу :)
Есть табличка с расчетами неких величин. Расчеты простые - в деления и преобразования dec<->hex. Основные расчеты идут в десятичной системе, а потом результыт перегоняется в хексовые.
Так вот в одной ячейке задана некая константа (пусть R). В следующей 60/R. Далее (60/R)^-1. Дальше ((60/R)^-1)/145e-6. Затем 413793/(((60/R)^-1)/145e-6). Результат получается правильный. Но дальше непонятки. Это нужно перегнать в хекс. Первое значение в таблице получается 15 (та самая константа). В хексе это F. Я пишу в ячейке =base(N,16) где N - ячейка с десятичным результатом. Но вместо F оно считает E. Далее в таблице 16, а оно преобразует это в F, но это неверно. И так далее все числа на 1 смещены. Выкрутился из ситуации инкрементированим десятичного значения =base((N+1),16) и вроде верно решил поставленую задачу. но теперь хочется выяснить почему так. Причем если просто написать в произвольное число, то же 15 в произвольную ячейку и таким же образом его конвертнуть, то всё нормально. Видимо это связано как-то с округлениями, но ведь десятичное деление делается не цельночисленое, да и результат получается целым числом и как-бы нечего округлять при преобразовании Dec->Hex. В аттаче файл с примером. Вся канитель в столбцах "Measured cadence" (H,I)
И ещё вопрос до кучи, возможно ли в OOo calc оперировать с числами в произвольной системе? Т.е. задать что в такой-то ячейке у меня число 11010010011 и это двоичное число, а не 11 милиардов, а потом взять поделить его на хекс 5FAC и получить результат в двоичном виде, или в хексе, или в десятичном - как будет задано. В хелпе нашел только преобразования и всё, и с теми непонятки

1. В каких ячейках неправильный результат?
2. Каккая версия ОС?
3. Какая версия ОО и чьей сборки?

Спасибо сказали:
Kopilov
Сообщения: 949
ОС: [K]Ubuntu, Debian

Re: OOo Calc странно считает

Сообщение Kopilov »

Результат в столбце H автоматически округлён в большую сторону. Например, H21 -- не 15, а 14.99999625 -- и функция Base это чувствует.
Используй Hi=Round(413793/Ei)
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE
Контактная информация:

Re: OOo Calc странно считает

Сообщение FlySnake »

Sleeping Daemon писал(а):
21.06.2010 00:05
1. В каких ячейках неправильный результат?
2. Каккая версия ОС?
3. Какая версия ОО и чьей сборки?
1. Столбец I - в нём H в хексе
2. openSUSE 11.2
3. 3.1.1 сусешной сборки. В Инфре так же
Но это уже не имеет значения :)
Kopilov писал(а):
21.06.2010 00:09
Результат в столбце H автоматически округлён в большую сторону. Например, H21 -- не 15, а 14.99999625 -- и функция Base это чувствует.
Используй Hi=Round(413793/Ei)
Спасибо! Как всегда решение оказалось простым :) Оно по умолчанию показывает 2 знака после запятой, а я недогадался проверить расчет на калькуляторе
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450
Контактная информация:

Re: OOo Calc странно считает

Сообщение Sleeping Daemon »

FlySnake писал(а):
21.06.2010 00:54
Sleeping Daemon писал(а):
21.06.2010 00:05
1. В каких ячейках неправильный результат?
2. Каккая версия ОС?
3. Какая версия ОО и чьей сборки?
1. Столбец I - в нём H в хексе
2. openSUSE 11.2
3. 3.1.1 сусешной сборки. В Инфре так же
Но это уже не имеет значения :)
Kopilov писал(а):
21.06.2010 00:09
Результат в столбце H автоматически округлён в большую сторону. Например, H21 -- не 15, а 14.99999625 -- и функция Base это чувствует.
Используй Hi=Round(413793/Ei)
Спасибо! Как всегда решение оказалось простым :) Оно по умолчанию показывает 2 знака после запятой, а я недогадался проверить расчет на калькуляторе

Видимо имеет. У меня всё правильно. Ос та же, а вот OO 3.2.1.
Спасибо сказали:
Kopilov
Сообщения: 949
ОС: [K]Ubuntu, Debian

Re: OOo Calc странно считает

Сообщение Kopilov »

Sleeping Daemon писал(а):
21.06.2010 09:40
OO 3.2.1.

У меня тоже.
В документе, предоставленном FlySnake, какое значение было в ячейке I21? Если F -- то потому, что FlySnake прибавлял единицу к числу из столбца H.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450
Контактная информация:

Re: OOo Calc странно считает

Сообщение Sleeping Daemon »

Kopilov писал(а):
21.06.2010 09:47
Sleeping Daemon писал(а):
21.06.2010 09:40
OO 3.2.1.

У меня тоже.
В документе, предоставленном FlySnake, какое значение было в ячейке I21? Если F -- то потому, что FlySnake прибавлял единицу к числу из столбца H.

Точно. Невнимательно посмотрел.
Спасибо сказали:
Ответить