Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String in Integer wandeln. (https://www.delphipraxis.net/42523-string-integer-wandeln.html)

smart 20. Mär 2005 11:09


String in Integer wandeln.
 
Wie kann man ein String: 1,29 in Integer umwandeln. Mit StrToInt geht es nicht. Da kommt eine Fehlermeldung. Ich habe das schon mal hinbekommen, leider wieder vergessen.

Zacherl 20. Mär 2005 11:11

Re: String in Integer wandeln.
 
StrToFloat :wink:

Airblader 20. Mär 2005 11:13

Re: String in Integer wandeln.
 
1,29 ist natürlich kein Integer ;)

Wenn du ein Float draus machen willst, siehe über mir.

Soll es doch ein Integer sein, müsstest du mit entsprechenden Funktionen wie Hier im Forum suchenround, Hier im Forum suchenceil oder Hier im Forum suchenfloor runden :)

Also z.B.:

Delphi-Quellcode:
var
   zahl: string;
   floatzahl: float;
   integerzahl: integer;
begin

zahl := '1.29'; // Dein String

// Umwandeln in Float
floatzahl := StrToFloat(zahl);

// Umwandeln in Integer
integerzahl := StrToInt(Round(StrToFloat(zahl))); // = 1
integerzahl := StrToInt(Ceil(StrToFloat(zahl))); // = 2
integerzahl := StrToInt(Floor(StrToFloat(zahl))); // = 1
D.h:

Du rundest(zahlabhängig/auf/ab) die Zahl, indem du sie vorher zu einem Float machst und sie nach dem Runden in den Integer wandelst ;)

Round = "mathem.", zahlenabhängiges Runden
ceil = Aufrunden
floor = Abrunden

air

smart 20. Mär 2005 11:24

Re: String in Integer wandeln.
 
Nein, es Sollte nicht gerundet werden. Eigendlich brauch nur das Komma entfernt zu werden und dann könnte man bei der Ausgabe /100 verwenden.

Zacherl 20. Mär 2005 11:27

Re: String in Integer wandeln.
 
Dann Multipliziere den Wert doch erst mit 100. :wink:

smart 20. Mär 2005 11:30

Re: String in Integer wandeln.
 
Nur, man kann ein String leider nicht Multiplizieren.

Die Muhkuh 20. Mär 2005 11:36

Re: String in Integer wandeln.
 
Mach halt so:

Mach nen Float draus, multipliziere mit 100, mach nen Integer draus und dividiere wieder mit 100. Umständlicher und ungenauer wird halt nich gehen :mrgreen:

smart 20. Mär 2005 11:41

Re: String in Integer wandeln.
 
Auf die Idee bin ich auch schon gekommen, was mich daran stört ist nur, dass jeder dummer Taschenrechner dann genauer rechnet.

Die Muhkuh 20. Mär 2005 11:42

Re: String in Integer wandeln.
 
Dann bleibt dir nichts anderes übrig, es so zu machen, wie Airblader.

Lannes 20. Mär 2005 11:50

Re: String in Integer wandeln.
 
Hallo,
Zitat:

Zitat von smart
Nein, es Sollte nicht gerundet werden. Eigendlich brauch nur das Komma entfernt zu werden und dann könnte man bei der Ausgabe /100 verwenden.

Komma entfernen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i : Integer;
    s : String;
begin
  s := Copy('1,20',1,Pos(',','1,20')-1);
  s := s + Copy('1,20',Pos(',','1,20')+1,10000);
  i := StrToInt(s);
end;
MfG Lannes

Sharky 20. Mär 2005 12:02

Re: String in Integer wandeln.
 
Zitat:

Zitat von smart
Auf die Idee bin ich auch schon gekommen, was mich daran stört ist nur, dass jeder dummer Taschenrechner dann genauer rechnet.

Ähmm.... was hat das denn jetzt auf einmal mit einem Taschenrechner zu tun?

sakura 20. Mär 2005 12:09

Re: String in Integer wandeln.
 
Delphi-Quellcode:
var
  Int: Integer;
begin
  Int := Trunc(StrToFloat('1,29'));
end;
...:cat:...

Airblader 20. Mär 2005 12:13

Re: String in Integer wandeln.
 
Zitat:

Zitat von sakura
Delphi-Quellcode:
var
  Int: Integer;
begin
  Int := Trunc(StrToFloat('1,29'));
end;
...:cat:...

Trunc wollte ich auch erwähnen, allerdings ist mir leider der Begriff nichtmehr eingefallen, bin nur auf round, ceil und floor gekommen :D

smart 20. Mär 2005 12:22

Re: String in Integer wandeln.
 
Ich habe zwei Strings vorliegen, 1,29 und 1,89. Diese beiden String sollen ganz einfach zusammengerechnet werden. Die Zahlen sind natürlich nur ein Beispiel. Wenn ich die jetzt runde, ist das Ergebnis zu ungenau, nämlich 3. Richtig wäre aber 3,18. So eine einfache Aufgabe sollte sich doch mit Delphi lösen lassen.

Airblader 20. Mär 2005 12:24

Re: String in Integer wandeln.
 
Wozu dann Integer?

Delphi-Quellcode:
var
  zahl1, zahl: string;
  ergebnis: float;
begin
 zahl1 := '1.29';
 zahl2 := '1.86';
 
 ergebnis := StrToFloat(zahl1) + StrToFloat(zahl2);

 Label1.Caption := FloatToStr(ergebnis);
end;

sakura 20. Mär 2005 12:25

Re: String in Integer wandeln.
 
Zitat:

Zitat von smart
So eine einfache Aufgabe sollte sich doch mit Delphi lösen lassen.

Dann schau Dir meine Lösung für eine Zahl an, dann denke nach und Du hast die Lösung. Ich muss doch nicht alles vorgetippt servieren, oder? :gruebel:

...:cat:...

Matze 20. Mär 2005 12:27

Re: String in Integer wandeln.
 
Ein Integer ist nun mal ein ganzzahliger Wert und hat somit keine Nachkommastellen. Du musst über eine Gleitkommazahl, wie z.B. Real, gehen, anders geht es nicht, ist das so schwer zu begreifen. :?

smart 20. Mär 2005 12:34

Re: String in Integer wandeln.
 
Und genau darauf bin ich nicht gekommen, Airblader. Vielen Dank an Dir und die Anderen! Manchmal sieht man vor lauter Walt die Bäume nicht.

Airblader 20. Mär 2005 12:37

Re: String in Integer wandeln.
 
Zitat:

Zitat von smart
Manchmal sieht man vor lauter Walt die Bäume nicht.

Ich seh normal den Wald vor lauter Bäumen nicht, aber wenn du vor lauter Wald die Bäume nicht siehst ist das auch Okay :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz