Представляя дробь в двоичном виде?

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

1 ответ

Решение

Если вы хотите хранить рациональные числа без потери точности, правильный способ - хранить как числитель, так и знаменатель.

На практике большинство людей используют математические типы данных с плавающей точкой или встроенные / библиотеки произвольной точности (например, Java BigDecimal).

Если вы специально хотите использовать тип данных для дробей, некоторые языки имеют встроенные типы для рациональных чисел. Для большинства других языков обычно есть библиотека с используемым типом данных (например, для Java Apache Commons имеет класс Fraction, а для C/C++ GMP имеет тип данных mpq_t)

Другие вопросы по тегам