Сравните хранение числителя и знаменателя дроби - PullRequest
0 голосов
/ 11 марта 2019

Я хочу сравнить сохранение в памяти компьютера числителя и знаменателя дроби в виде двух целых чисел без знака и отдельной логической переменной, представляющей знак, с сохранением числителя и знаменателя в виде целых чисел со знаком. На базовом примере сложение, вычитание, деление и умножение двух дробей. Какой вариант хранения на ваш взгляд предпочтительнее? Может быть, лучше добавить булеву переменную, представляющую знак дроби?

1 Ответ

1 голос
/ 11 марта 2019

boost::rational является хорошим примером того, как это реализовать.Если вы создадите шаблон для целочисленного типа без знака, он будет недопустимым для отрицательных чисел.

Как отмечено в документации Boost:

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

...