Преобразование больших Real значений в строку

Часто используется в играх-кликалках, позволяет убрать значёк экспоненты и преобразовать огромные Real числа в строку без указания экспоненты.

function FormatLargeNumber(const Value: Real; const Digits: Byte = 1): string;
const
    // Список суффиксов: тыс (K), млн (M), млрд (B), трлн (T), квадрилл (Qa), квинтилл (Qi), секстилл (Sx), септилл (Sp)
    Suffixes: array[0..14] of string = ('', 'K', 'M', 'B', 'T', 'Qa', 'Qi', 'Sx', 'Sp', 'Oc', 'No', 'Dc', 'UDc', 'DDc', 'TDc');
var Exponent: Integer;
    BaseValue: Real;
begin
    Result := '0';
    if Value > 0 then begin
        // Определяем индекс суффикса на основе экспоненты (деление на 10^3)
        Exponent := Floor(Log10(Abs(Value))) div 3;
        // Ограничиваем индекс границами массива суффиксов
        if Exponent < 0 then
            Exponent := 0
        else if Exponent > High(Suffixes) then
            Exponent := High(Suffixes);
        // Вычисляем базовое число для вывода
        BaseValue := Value / Power(10, Exponent * 3);
        // Форматируем строку с заданным количеством знаков после запятой
        Result := FloatToStrF(BaseValue, ffFixed, 15, Digits) + Suffixes[Exponent];
    end;
end;