Простая математика Excel неправильно

Во-первых я не хочу к раунду свои числа, я использую основу 10 чисел, таким образом, Excel не должен иметь никакого беспокойства, делающего простой, добавляют и вычитают.

A|  665.110000000000000000000000000000
B|  4.990000000000000000000000000000
C|  =a1+b1
D|  670.790000000000000000000000000000
E|  1,335.890000000000000000000000000000
F|  =e1-(c1+d1)

Я должен добраться-5 однако возвраты F1

-4.999999999999770000000000000000

Это - финансовый документ поэтому, я не хочу округляться, главный. Почему я должен должен быть? Я поместил форматирование ячейки в Валюту с 2 помещенными десятичными числами, и я получу значение требуемого дисплея, но для всех вычислений я все еще доберусь-4.9999... 7, который приводит к дальнейшим ошибкам с условным форматированием и т.д.

2
задан 05.06.2011, 12:03

3 ответа

Проблема происходит из-за базового оборудования почти всех компьютеров. Они основаны на двоичных системах счисления, таким образом, они не рассчитывают от 0 до 9, вместо этого они просто количество 0 и 1, или базируются 2.

Это прекрасно, если, поскольку Вы обнаружили, Вы не хотите десятичных чисел высокой точности. Компьютеры могут только рассчитать с точки зрения частей, которые являются полномочиями половины, т.е. 1/2, 1/4, 1/8, 1/16, 1/32 и т.д. Нет никакого простого способа к компьютеру для представления некоторых чисел, таких как 1/3 или 4.99 отлично точно, не бросая большую производительность.

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

Вы говорите, что это для финансовых вычислений, Вам действительно нужен конечный результат, отображенный к 20 десятичным разрядам? Или необходимо ли просто быть уверены, что вычисление сделано с достаточной точностью, что погрешности округления не произойдут. Если это - последний, Вам, вероятно, просто придется положить, что Excel делал, это - задание в течение нескольких лет для бесчисленных финансовых организаций без проблемы. И это Вы не должны волноваться о тех погрешностях округления, вызывающих Вас проблемы.

6
ответ дан 08.12.2019, 04:46

На этом ответили здесь прежде.

Просто, потому что Вы используете "Круглое" число в основе 10, не помогает - цифры компьютерных магазинов в двоичном файле. Ваша круглая база, которую 10 чисел переводят в число в двоичном файле, который заканчивает тем, что повторился, Вы теряете информацию при преобразовании того десятичного числа назад.

Пользователи компьютера обходят это с двумя методами:

1) сделайте свою математику к определенному числу десятичных разрядов затем вокруг них к меньшему количеству десятичных разрядов. 2) используйте BCD или некоторое другое точное десятичное представление.

Насколько я знаю Excel не использует № 2, так выберите другую опцию.

3
ответ дан 08.12.2019, 04:46

существует опция в Excel "точность, как отображено", какой effectivly автоокругляет числа к точности, в которой Вы принимаете решение отобразить свои числа.

http://support.microsoft.com/kb/78113

не рекомендовал бы сделать это, хотя, поскольку это может ввести погрешности округления в вычисление, поскольку Вы говорите Excel раунду к 2 десятичным разрядам, тогда как в настоящее время погрешность округления к 15 (выход), десятичные разряды так не будут влиять на Ваши вычисления вообще.

1
ответ дан 08.12.2019, 04:46

Теги

Похожие вопросы