Как отформатировать 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,

Другие вопросы по тегам