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