Почему Excel не вычисляет куб root как куб root? - PullRequest
2 голосов
/ 03 апреля 2020

У меня есть подозрение, что Excel вычисляет показатели, которые повторяют десятичные дроби, представленные в виде дроби (например, 1/3), в отличие от тех, которые не имеют повторяющихся десятичных знаков (например, 1/2). Мне мешает формула, которая находит идеальные кубы в списке чисел.

В столбце A перечислены числа от 1 до 100.

В столбце B есть следующая формула (начиная со строки 5):

=IF($A5^(1/2)-ROUND($A5^(1/2),0)=0,1,0)

Это должно возвращать "1", если число в столбце A является идеальным квадратом, например, 1, 4, 9 и т. Д. c. и делает это правильно. Эта другая формула, которую я первоначально написал, также работает: =IF(SQRT($A8)-ROUND(SQRT($A8),0)=0,1,0).

Столбец C имеет следующую формулу (начиная со строки 5):

=IF($A5^(1/3)-ROUND($A5^(1/3),0)=0,1,0)

Обратите внимание, что она точно такая же как формулу идентификации идеального квадрата, за исключением того, что есть 3, где было 2. Это , а не , возвращающее «1» для совершенных кубов, таких как 8, 27, 64. et c. (но возвращает «1» для числа 1).

Может кто-нибудь помочь мне исправить это?

1 Ответ

0 голосов
/ 04 апреля 2020

Я извиняюсь за то, что не знал, как выбрать комментарий в качестве ответа, поэтому я собрал полезные комментарии и публикую их как ответ.

Основное объяснение: См. Арифметика с плавающей точкой c может дать неточные результаты в Excel . Если вы изучите базовый xml, вы увидите, что Excel вычисляет A1 ^ (1/3) как 1.9999999999999998. В статье объясняется почему и предлагаются некоторые обходные пути. - Рон Розенфельд

Обходной путь, который я выбрал: Вы не можете заменить $A5^(1/3)-ROUND($A5^(1/3) на $A5 - ROUND($A5^(1/3))^3? - r3mainer

Спасибо всем!

...