LINUX.ORG.RU

История изменений

Исправление dzidzitop, (текущая версия) :

в общем надо найти min n при котором

(FLT_RADIX ^ FLT_MIN_EXP) * (base ^ (n - 2)) >= 1

(2 ^ FLT_MANT_DIG) * (FLT_RADIX ^ FLT_MIN_EXP) / (base ^ (n - 3)) <= 1

n - 2 - задел под "-."

n - 3 - задел под "-.0"

base - основание числа в строке. задаётся извне.

вроде как-то так. на 32bit float можно полным перебором проверить.

Исходная версия dzidzitop, :

в общем надо найти min n при котором

(FLT_RADIX ^ FLT_MIN_EXP) * (base ^ (n - 2)) >= 1

(2 ^ FLT_MANT_DIG) * (FLT_RADIX ^ FLT_MIN_EXP) / (base ^ (n - 3)) <= 1

n - 2 - задел под "-." n - 3 - задел под "-.0"

base - основание числа в строке. задаётся извне.

вроде как-то так. на 32bit float можно полным перебором проверить.