Почему рациональные числа не реализуются и не хранятся в виде дробей с нулевой потерей информации? [закрыто]

Я знаю, что это немного гипотетически, но мне интересно, почему ни один из известных мне языков не делает этого.

Например, вы хотите сохранить 1/3. Дайте программисту возможность указать его как 1/3 и сохранить 1 и 3. Что-то вроде

struct float {
    int numerator;
    int denominator;
};

Арифметика рациональных чисел становится действительно простой и значительно более точной!

Это решило бы так много проблем, связанных с точностью и ограничениями хранения чисел с плавающей запятой, и я не вижу, чтобы это создавало какие-то новые проблемы!

Отсюда мой вопрос: Почему рациональные числа не реализуются и не хранятся в виде дробей с нулевой потерей информации?


Как спрашивал Джо, и другие могли бы также указать, я имею в виду не замену существующей системы, а ее дополнение.

В: Как вы храните pi?

A: Много раз я просто сохранял 1/3, а не пи. piможно хранить по-старому, а 1/3по-новому.

27
задан Lazer 27 May 2012 в 03:32
поделиться