Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Точная арифметика / 7 сообщений из 7, страница 1 из 1
12.05.2012, 14:56
    #37791137
MyNiGoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
Подскажите, пожалуйста, какие существуют паттерны для точной арифметики?
Нужно реализовать корректную обработку случаев 3 * (1 / 3) == 1
Или хотя бы по каким словам погуглить?

Где-то на форуме попадался уже такой топик, а найти не могу(
...
Рейтинг: 0 / 0
12.05.2012, 15:06
    #37791154
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
MyNiGoo,

Что-то типа "символьная арифметика"; возможно - "классы для работы с рациональными числами".
...
Рейтинг: 0 / 0
12.05.2012, 15:11
    #37791162
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
если числа окажутся вещественными, то вместо А == В можно делать abs(A-B) < 0.00001 (количество нулей выбирается самостоятельно)
...
Рейтинг: 0 / 0
12.05.2012, 15:48
    #37791237
MyNiGoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
немного неверно меня поняли, смысл в том, чтобы цифры, которые потом пойдут в БД, получились вот такими:

1 / 3 = 0,33
1 / 3 = 0,33
1 / 3 = 0,3 4

за счет какого именно числа будет нивелироваться погрешность, безразлично. Главное - подход, при котором round не понадобится. Встречал ведь где-то описание паттерна для таких нужд((
...
Рейтинг: 0 / 0
12.05.2012, 15:55
    #37791251
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
MyNiGoo,

Непонятно. Тогда это должен быть, к примеру, объект "вычислитель", который считает с избыточной точностью и при своём "округлении" учитывает накопленную погрешность. Потому что у Вас получается, что для вычисления 1/3 недостаточно знать делимое и делитель, т.к. получаются разные результаты.
...
Рейтинг: 0 / 0
12.05.2012, 16:32
    #37791330
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
MyNiGoo1 / 3 = 0,33
1 / 3 = 0,33
1 / 3 = 0,3 4
1 / 3 = a
1 / 3 = b
1 / 3 = c = 1 - a - b
...
Рейтинг: 0 / 0
14.05.2012, 15:18
    #37793361
MyNiGoo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Точная арифметика
Жалко, что не вспомнилось. Всем спасибо за внимание и предложенные варианты.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Точная арифметика / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]