История изменений
Исправление
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 можно полным перебором проверить.