Возможно глупый вопрос. Но как делают точные калькуляторы, когда есть ограничения на диапозон типов данных (int,doble и т.д.)?
Как можно на бумажке "в столбик" произвести сложение, вычитание, умножение, деление с числами любой длины?
Ровно так же и тут. Точнее тут два варианта - использовать какую-нибудь библиотеку для работы с гигантскими числами с гигантской точностью или же написать свое. В зависимости от вкусов и предпочтений - вплоть до реализации этакой полной модели "вычисляющей машины".
Естественно это не считая приемов,  которые применяются при вычислениях на логарифмической линейке.
Есть библиотеки для работы с большими числами (bigdigits.c), которые хранят числа в многобайтовых массивах.
Ограничения на типы данных, да и сами типы данных вводятся спецификацией языка программирования.