Как найти количество цифр в числе float

Как найти количество цифр(символов) в числе float

Так Вы и так увидите количество символов при выводе, если не форматировать.
Или в чем суть вопроса?

Если речь не о конвертации в строку (с каким-то округлением) готовыми средствами языка (sprintf, …), то сложно :slight_smile:

Так что всё зависит от интерпретации задачи.

Например, гугл такую подсказал:
https://stackoverflow.com/a/17844221/964478

Given a floating point number, find the shortest decimal representation that would be re-interpreted as the same floating point value with correct rounding.

Once formulated like this, the answer is Yes we can - see this algorithm:

Printing floating point numbers quickly and accurately. Robert G. Burger and R. Kent Dybvig. ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation, June 1996

http://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf

See also references from Compute the double value nearest preferred decimal result for a Smalltalk implementation.

Да нетрудно считаем до потери точности и переводим в десятичные если надо.

uses math;
...
var s, eps:Single;
  BitCount, Digits:Integer;
  i:Integer;
begin
Eps:=1;
i:=0;
repeat
  S:=1+Eps;
  if s=1 then
    begin
    BitCount:=i-1;
    Break;
    end;
  Eps:=Eps/2;
 inc(i);
until false;
Digits:=Trunc(BitCount/Log2(10)+1);
caption:=Format('Количество бит=%d количество десятичных знаков=%d',[BitCount,Digits]);
end;

Деноминацию ещё учесть для полного счастья.
П.С. В Delphi Float это Single.