Как отформатировать MinExtended80Denormal?
Единица System.Math
определяет постоянную
MinExtended80Denormal
Могу ли я преобразовать это число в строку с заданными функциями RTL?
Я старался
FormatFloat('#.##############E+####', System.math.MinExtended80Denormal)
что приводит к
000000000000000E+00000
Я тоже пробовал большие денормализованные значения, но кажется, что такие значения (в которых показатель равен нулю) не поддерживаются встроенными функциями форматирования.
1 ответ
Решение
Используя встроенные в систему функции печати, она работает:
uses
Math;
var
s:String;
begin
Str(MinExtended80Denormal,s);
WriteLn(s);
WriteLn(MinExtended80Denormal);
Str(MinExtended80Denormal:26:-1,s);
WriteLn(s);
WriteLn(MinExtended80Denormal:26:-1);
end.
Выходы:
3.64519953188247E-4951
3.64519953188247E-4951
3.64519953188247460E-4951
3.64519953188247460E-4951
Константа MinExtended80Denormal определяется как: 3.64519953188247460253e-4951 Таким образом, наилучший результат дает все цифры, кроме трех последних десятичных знаков.
Я тоже пробовал WriteLn(MinExtended80Denormal.ToString)
, но это дало 0
,