Excel неверный десятичный расчет сотых - PullRequest
0 голосов
/ 31 марта 2020

Я столкнулся с очень странной проблемой, связанной со значениями, введенными с двумя десятичными разрядами (то есть центами)

Я хочу express сотых как целых чисел - таким образом, введенный 2.01 будет рассчитываться как 1 (1 цент), 3,05 будет рассчитываться до 5 (5 центов). Довольно просто, подумал я.

Ну, я использовал формулу = INT ((A1-INT (A1)) * 100), которая работала для 1,01, но не для 2,01. Значение, которое я получаю, должно быть целым числом (а не просто отображаться как единое целое), следовательно, вокруг него должен быть дополнительный INT.

При копании в этом я заметил, что если вы просто введете 1.01 в a1, 1 в b1, затем в c1 поместите формулу A1-b1, а затем отформатируйте ее в 16 или более десятичных разрядов, она покажет значения, которые не равны 0,0100000000000000 при изменении a1 и b1. Если вы измените a1 на 2.01 и b1 на 2, вместо этого отобразится 0.0099999999999998. Почему Excel не обрабатывает точность должным образом и не добавляет все эти десятичные значения к простым введенным #, таким как 2.01-2? Это происходит в Excel 2016 и Excel 2013 (как минимум).

1 Ответ

1 голос
/ 31 марта 2020

Ваша формула:

=INT((A1-INT(A1))*100)

работает, но может не дать ожидаемого значения. Рассмотрим:

enter image description here

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

Формула работает со значением в строке формул и возвращает двойной ноль после десятичной точки.

Вы можете предпочесть что-то как:

=ROUND((A22-INT(A22))*100,0)

, который даст вам 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...