![]() |
Realzahl nach Integer formatiern
Ich muss in einem programm von mir ne realzahl in ne integerzahl umwandeln...allerdings klappt das nicht, ich verwende den befehl
Delphi-Quellcode:
Ich kriege jedesmal die meldung undefinierter bezeichner
FloattoStr(X);
kann mir da jemand helfen???? |
Re: Realzahl nach Integer formatiern
Wie schon der Name sagt, wandel FloatToStr eine Realzahl in einen String um. Ein String ist nunmal kein Integer :)
Delphi-Quellcode:
Edit: Tippfehler entfernt
uses Math;
... integer := Round(Real); |
Re: Realzahl nach Integer formatiern
Sorry, hab mich verschrieben...in meinem prog stehts auch unter FloattoInt drinne...soooorrrrryyyy
|
Re: Realzahl nach Integer formatiern
Zitat:
Wie gesagt: Round ist die Funktion die Du brauchst. |
Re: Realzahl nach Integer formatiern
OH ansehen:
trunc() frac() round() und erleuchtet sein :-) Gruß |
Re: Realzahl nach Integer formatiern
Seit lieb.
Jeder von uns hat einmal angefangen! Und SimOr hat eine höfliche Frage gestellt! |
Re: Realzahl nach Integer formatiern
[OT]Da hast du schon recht Sharky, aber ich sehe hier keinen, der unfreundlich war :wink: Für mich liest sich der Thread hier in gewohnt gutem Ton wie ich ihn in der DP gewohnt bin :wink: [/OT]
Man liest sich, Stanlay :hi: |
Re: Realzahl nach Integer formatiern
Is ja auch egal...irgendwie will das ganze programm aber nich...magut, ein großteil geht...
also ich umreiß das mal so grob Geradengleichung y=mx+n is ja jedem geläufig..ich programmier so als zusätzliche übung eben was , wenn ich x1,y1 und x2,y2 eingeben sagt es mir in nem memofeld die steigung, den y-achsenabschnitt sowie die formel mit den werten nochmal eingesetzt... naja, alles schön, bis auf das zeichnen einger gerade... ich hab die realzahlen der koordinaten in integer umgewandelt und so weiter und so fort.. naja, jetzt zeichnet der die gerade aber nich so wie man das anhand der koordinaten glauben sollte, sondern, wie ich glaube, um 90 ° verdreht...ich zeig euch mal die passage mit der ich die koordinaten ausrechne
Delphi-Quellcode:
Ich glaube das hängt mit dem trunc, round oder frat zusammen, das die das nich sauber genug umrechnen oder so...hab da aber immo nich so nen peil von
Kx1:=round(X1)+265;
Kx2:=round(X2)+265; Ky1:=round(Y1)+180; Ky2:=round(Y2)+180; //Linie zeichnen Moveto (Kx1,Ky1); Lineto(Kx2,Ky2); |
Re: Realzahl nach Integer formatiern
Ich denke mal das lieg daran das jedes Canvas in der OBEREN Linken Ecke seinen Ursprung hat.
Daraus folgt, das je größer dein y-Wert wird er um so tiefer auf deinem Bildschirm gezeichnet wird. Du musst also lediglich das Bild einmal kippen und den Rest überlass ich Dir als Gehirn-Training :wiejetzt: :angle: |
Re: Realzahl nach Integer formatiern
Hallo SimOr.
Das Problem besteht darin, dass der Ursprung des Koordinatensystems in der oberen linken Ecke liegt. Daher hast du ja uch schon Werte addiert, um den Ursprung in Richtung Bildschirmmitte zu rücken (oder habe ich das falsch verstanden :gruebel:). Wenn allerdings y größer als 0 ist, so rückt der Punkt noch weiter nach unten, obwohl er eigentlich nach oben rücken müsste. Die Lösung: Du musst das Vorzeichen des Y-Wertes vertauschen. Dann müsste es gehen. Viele Grüße PPLC :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 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