![]() |
Zahl auf ihre Natürlichkeit überprüfen
Hallo!
Und zwar ist meine Farge, wie ich eine Zahl darauf überprüfen kann, ob sie eien Natürliche Zahl ist oder nicht. Also eine ganze Zahl und keinen Komma oder Restwert hat. Ich will einen ansteigenden Wert durch 7 Zahlen teilen lassen und dann jeweils überprüfen, ob etwas gerades herauskommt. mfg Cya |
Re: Zahl auf ihre Natürlichkeit überprüfen
Also willst du prakisch testen, ob eine Zahl durch 7 teilbar ist (ein Vielfaches von 7 ist)?
Wenn ja, dann teste, ob
Delphi-Quellcode:
mod = Modulo -> gibt den Rest einer Division zurück^^
Zahl mod 7 = 0
//edit: Zum Thema "etwas gerades": Meinst du, die Zahl, die rauskommt, soll zusätzlich gerade sein? Dann nimm ![]() |
Re: Zahl auf ihre Natürlichkeit überprüfen
Um zu prüfen ob eine (Fließkomma-)Zahl eine natürliche Zahl ist, müsste folgendes gehen:
Delphi-Quellcode:
var Zahl: real;
begin if Zahl - trunc(Zahl) = 0 then ShowMessage('Natürlich'); end; |
Re: Zahl auf ihre Natürlichkeit überprüfen
Zitat:
Delphi-Quellcode:
const
Epsilon = 1E-6; ... if Abs(Value - Round(Value)) < Epsilon then ... ![]() |
Re: Zahl auf ihre Natürlichkeit überprüfen
Das steht selbstverständlich nicht zur Diskussion. Um ehrlich zu sein, war ich nur ein wenig faul und hab mir das Leben einfacher gemacht... :wink:
|
Re: Zahl auf ihre Natürlichkeit überprüfen
Das habe ich mir gedacht :mrgreen: . Trotzdem ist der Code einfach falsch, den konnte ich so nicht stehen lassen :wink: .
[add] Mein Code stimmt aber auch nicht ganz :stupid: :
Delphi-Quellcode:
[/add]
function InN(const AValue: Single): Boolean;
const Epsilon = 1E-6; begin Result := (AValue > 0) and (Abs(AValue - Round(AValue)) < Epsilon); end; |
Re: Zahl auf ihre Natürlichkeit überprüfen
Zitat:
|
Re: Zahl auf ihre Natürlichkeit überprüfen
Das nenne ich Teamwork :mrgreen: .
|
Re: Zahl auf ihre Natürlichkeit überprüfen
Jetzt komm ich wieder mit meinem pos :duck:
Geht das auch mit Pos? ;)
Delphi-Quellcode:
Müsste doch auch gehen, oder?
if pos(edit2.text,',') then
begin //was hier passieren soll end; Würde dann meiner Meinung so aussehen. Beide Variablen sind natürlich integer. :)
Delphi-Quellcode:
(ungetestet)
zaehler:=0;
repeat zaehler:=zaehler+1; zahl:=zaehler; zahl:=zahl/7; if pos(zahl,',')then showmessage('Zahl ist keine natürliche Zahl'); until i=100; //als Beispiel Hoffe, ich konnte dir helfen, auch wenns unübersichtlich ist ... ;) |
Re: Zahl auf ihre Natürlichkeit überprüfen
Dann aber bitte
Delphi-Quellcode:
:wink:
if pos(edit2.text, DecimalSeperator) then
[...] Das Problem mit der Fließkommaungenauigkeit ist damit aber nicht gelöst. Es ist nicht sicher, dass
Delphi-Quellcode:
wirklich kein Komma besitzt. Um das abzusichern, müsste man FloatToStrF benutzen, da ziehe ich meine Variante aber vor :wink: .
FloatToStr(2);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 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