AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

interger zu String umwandlung;

Ein Thema von codenoob · begonnen am 1. Jun 2017 · letzter Beitrag vom 1. Jun 2017
Antwort Antwort
codenoob
(Gast)

n/a Beiträge
 
#1

interger zu String umwandlung;

  Alt 1. Jun 2017, 22:29
Hi Delphianers

Ich versuche einen Integer wert in einen String umzuwandeln ohne die System.SysUnit zu benutzen.
Ich habe dazu diese Funktion genommen.

Delphi-Quellcode:

function IntToStr(I: int64): string;
begin
   Str(I, Result);
end;
Wenn ich z.b die Zahl 499514339328 die ich als Int64 deklariert habe mit der Funktion umwandle dann erhallte ich als Resultat 1298132992

Wenn ich ne kürzere Zahl nehme dann funktionierts.

Weis wer worann das liegen kann?

Grüsse Tom

Geändert von codenoob ( 1. Jun 2017 um 22:51 Uhr)
  Mit Zitat antworten Zitat
Alt 1. Jun 2017, 22:34     Erstellt von SneakyBagels
Dieser Beitrag wurde von Luckie gelöscht. - Grund: Leerer Beitrag.
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#2

AW: interger zu String umwandlung;

  Alt 1. Jun 2017, 22:52
Weis wer worann das liegen kann?
Vermutung: Du schiebst den Wert vorher durch einen Integer durch und schneidest die oberen 32 Bit ab.

Wenn ich z.b die Zahl 499514339328 die ich als Int64 deklariert habe mit der Funktion umwandle dann erhallte ich als Resultat 1298132992
Wie machst du das?

Ich würde einfach mal die Überlaufprüfung in den Projektoptionen aktivieren.

Delphi-Quellcode:
procedure TForm24.FormCreate(Sender: TObject);
var
  i: Int64;
  i2: Integer;
  S: string;
begin
  {$RANGECHECKS ON}
  i := 499514339328;
  i2 := i;
  Str(i2, S);
  if S = '1298132992then ;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Jun 2017 um 22:58 Uhr)
  Mit Zitat antworten Zitat
codenoob
(Gast)

n/a Beiträge
 
#3

AW: interger zu String umwandlung;

  Alt 1. Jun 2017, 22:52
Ha sich erledigt.

Man schreibe es so

[DELPHI]
function IntToStr2(I: int64): AnsiString;
begin
{$WARNINGS OFF}
Str(I, Result);
{$WARNINGS ON}
end;
[DELPHI]

und es läuft auch mit grossen Zahlen unter Delphi XE
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

AW: interger zu String umwandlung;

  Alt 1. Jun 2017, 22:54
499514339328 mod 2^32 = 1298132992

Bist Du sicher, daß Du nicht irgendwo mit 32-Bit rechnest?

Selbst mit meinem Uralt-Delphi 6 erhalteich das richtige Ergebnis

Delphi-Quellcode:
function IntToStr(I: int64): string;
begin
   Str(I, Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a: int64;
begin
  a := 499514339328;
  showmessage(inttostr(a));
end;

Geändert von gammatester ( 1. Jun 2017 um 22:57 Uhr) Grund: - durch = ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#5

AW: interger zu String umwandlung;

  Alt 1. Jun 2017, 23:07
Egal ob AnsiString, String, mit oder ohne Warnings ... XE3, XE8, 10.2 ... überall funktioniert es.

Wenn Str auf _Str0Long (System.pas) geht, dann wird Integer verwendet
und bei _Str0Int64 (System.pas) ist es der Int64.
So kann man auch direkt erkennen, was Str eigentlich macht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Jun 2017 um 23:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz