Problematyczne pomniejszanie zmiennej o zera (długość)

0

Mam zmienną real no i niestety chciałbym mieć zapis 001 po konwersji do string i kiszka bo otrzymuję 1 :(

1
 WriteLn(Format('%.3d',[1]));

http://ideone.com/AdBU8f

0

@_13th_Dragon - pytacz ma zmienną typu Real, nie Integer, więc nie można w tym przypadku użyć formatu %d; Trzeba skorzystać z %f w odpowiedniej postaci oraz dopisać sobie zera wiodące; Przykład funkcji realizującej to zadanie:

uses
  SysUtils;

function RealToStr(ANumber: Real; AWidth: Byte): AnsiString;
begin
  Result := Format('%.0f', [ANumber]);
  Result := StringOfChar('0', AWidth - Length(Result)) + Result;
end;

Przykładowe wywołanie:

Write(RealToStr(1, 3));  // wyświetli łańcuch '001'

1 użytkowników online, w tym zalogowanych: 0, gości: 1