Этот вопрос интересен, но вызывает некоторые проблемы. Во-первых, вы никогда не сможете представить все действительные числа, используя (даже теоретически бесконечный) компьютер по причинам мощности.
То, что вы ищете, является типом данных «символических чисел». Вы можете представить себе какое-то дерево выражений с предопределенными константами, арифметическими операциями и, возможно, алгебраическими (корнями многочленов) и трансцендентными (exp, sin, cos, log и т. Д.) Функциями.
Теперь интересная часть истории: вы не можете найти алгоритм, который говорит о том, представляют ли два таких дерева одинаковое число (или, что то же самое, которые проверяют, является ли такое дерево нулем). Я не буду утверждать ничего точного, но, как намек, это похоже на проблему остановки (для компьютерных ученых) или теорему о неполноте Гёделя (для математиков).
Это делает такой класс довольно бесполезным.
Для некоторых подполей вещественных чисел, то есть канонические формы, как/б для рациональных чисел, или конечных алгебраических расширений рациональных чисел (а/б + IC/д для сложных рациональных чисел, а/б + SQRT (2) * a/b для Q [sqrt (2)] и т. Д.). Их можно использовать для представления некоторых конкретных наборов алгебраических чисел.
На практике это самая сложная вещь, которая вам понадобится. Если у вас есть определенная необходимость, как диапазонов чисел с плавающей точкой (в доказать некоторый результат Whithin заданного интервала, это, вероятно, ближе вы можете получить до действительных чисел) или произвольных точность чисел, у вас есть свободно доступные классы во всем мире. Google boost::range
для первого и gmp
для последнего.
Несколько полезных ответов ниже (и я добавлю, что однажды написал рациональный номер математического пакета), но если вы серьезно, у вас есть проблема: вы не можете выразить все реальные (или даже все реальные на '[0 , 1) ') в конечном пространстве. Таким образом, существует твердое теоретическое требование, что вы можете стать реальным. Затем становится вопросом выбора аппроксимации, которая наилучшим образом соответствует вашим потребностям. – dmckee
Errr ... относительно редактирования ... вы хотите реалы или комплексные числа? – dmckee
@dmckee Я знаю об этом. Но возможно иметь «достаточно хорошие» приближения. Все, что они здесь используют, должно отлично работать: http://www.wolframalpha.com/index.html – NullUserException