Возможно, это не самый эффективный способ, но вы можете создать собственный тип данных SIG Fig.
class SigFigFloat
{
SigFigFloat(vector<short> digits, int decimalIndex, bool negative);
SigFigFloat operator+(const SigFigFloat &value);
SigFigFloat operator-(const SigFigFloat &value);
//etc...
}
Это может быть много работы, но если вы реализуете это право, это может быть действительно гибкий способ для представления и выполнения расчетов с помощью фиг.