Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Keine minuswerte anzeigen bei Prozentrechnung (https://www.delphipraxis.net/180197-keine-minuswerte-anzeigen-bei-prozentrechnung.html)

rhodan 29. Apr 2014 18:28

Keine minuswerte anzeigen bei Prozentrechnung
 
mittlerweile ist es mir fast peinlich..dies ist das letzte mal, aber ich muss euch noch einmal mit meinen berechnungsformeln nerven...

Hiermit zeige ich an wieviel € noch eingenommen werden müssen, bis 40% des Monatsziels erreicht sind (um Provision zu bekommen).

Delphi-Quellcode:
provi1togo.Caption.Text :=FloatToStr((StrToFloat(monatsziel.Text) /100*40- StrToFloat(Umsatz.Text)));

das klappt auch so wie es soll, die formel stimmt. nur zeigt sie eben auch Minuswerte an sobald man über den 40% ist, ich möchte das wenn der wert <= 0 ist, nur 0 € angezeigt wird. hab schon ein bischen probiert aber ich kriege da nur murks raus und komische ergebnisse wie -1E etc :lol: :lol:

hat jemand ne idee? danach gibts keine neuen berechnungsformel threads mehr, ich schwöööörs :D

bitte um hilfe...

danke aus Hamburg

Popov 29. Apr 2014 18:35

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Mit der Funktion ABS() bekommst du den absoluten Wert.

Delphi hat noch weitere schöne Funktionen ;)

TRUNC gibt den Intergerwert raus.
ROUND ähnlich, rundet aber.
INT schneidet Nachommastellen ab
FRAC gibt nur die Nachkommastellen raus.
FLOOR rundet ab
usw.

rhodan 29. Apr 2014 18:54

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
wenn ich hier FloattoStr in ABS ändere bekomme ich ne fehlermeldung
Delphi-Quellcode:
[DCC Fehler] Source.pas(259): E2010 Inkompatible Typen: 'string' und 'Extended'
:lol: den wald vor lauter bäumen mal wieder ?! :D

Popov 29. Apr 2014 19:09

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Du mußt den Wert mit ABS bearbeiten, also z. B. ABS(-42.1) ergibt 42.1, ABS(43.4) ergibt 43.4. In FloatToStr eingebaut würde das in etwa so aussehen:
Delphi-Quellcode:
FloatToStr(Abs(-42.1));

rhodan 29. Apr 2014 19:30

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
hmmm...

Delphi-Quellcode:
provi1togo.Caption.Text :=FloatToStr(ABS(StrToFloat(monatsziel.Text) /100*40- StrToFloat(stand.Text)));

ergibt dann wenn ich die 40% um 100€ überschreite statt -100 wieder 100...aber wie reduziere ich den wert dauerhaft auf 0 € wenn er über 40% liegt? :S
sorry popov wenn ich dir alles aus der nase saugen muss :( :(

Lemmy 29. Apr 2014 19:32

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Hi

Delphi-Quellcode:
  var Differenz: Currency;
  ....

  Differenz := StrToFloat(monatsziel.Text) /100*40- StrToFloat(Umsatz.Text);
  provi1togo.Caption.Text := FloatToStrF(IfThen(Differenz<0, 0, Differenz), ffCurrency, 18,2);
//Alternativ
  if Differenz<0 then
    Differenz := 0;
  provi1togo.Caption.Text := FloatToStrF(Differenz, ffCurrency, 18,2);

Nachtrag: Wegen deinem anderen Post in dem Du uns erklärst, dass dein Source nicht besonders gut ist... Entschuldige dich nicht dafür - mach ihn besser! Wenn Du Tipps brauchst, dann schick mir ne PN....

himitsu 29. Apr 2014 19:33

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Außerdem würde ich noch auf die OH hinweisen.

Und über die Codevervollständigung kommt man auch eine kleine Übersicht, was sich in so mancher Unit versteckt.

Vorallem die Units SysUtils und vorallem Math könnten für dich interessant sein.

PS: Falls dir langweilig ist und du einfach mal massig Rechenoperationen studieren willst:
http://www.delphipraxis.net/123215-p...umwandeln.html

rhodan 29. Apr 2014 19:47

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
lemmy... :shock: :shock:

bitte erklär mir das, ich will die magic verstehen..

Delphi-Quellcode:
  Differenz := StrToFloat(monatsziel.Text) /100*40- StrToFloat(Umsatz.Text);
  provi1togo.Caption.Text := FloatToStrF(IfThen(Differenz<0, 0, Differenz), ffCurrency, 18,2);

funktioniert wie ein charm...perfekt...und wieso wird sogar das € zeichen hinter dem betrag angezeigt?? ich kann das aus dem code nicht rauslesen, liegt das am dem currency? das funktioniert 1A..


Delphi-Quellcode:
  if Differenz<0 then
    Differenz := 0;
  provi1togo.Caption.Text := FloatToStrF(Differenz, ffCurrency, 18,2);

scheint etwas ungenauer zu sein, zumindest wird mir bei einem monatsziel von 20000 (40%=8000€) bei 7999 auch 0€ to go angezeigt...aber die erste variante ist genial...erklärt mir bitte wie das funktioniert...was ist dieses currency? ist das für das eurozeichen verantwortlich?

ich liebe momente wie diese wenn ich auf dinge stosse (durch hilfe) die ich nicht verstehe und die genau das tun was ich haben will...wie funktioniert das??? :lol:

ps: und was ist das 18,2 am ende??? 2 ist wohl die kommastelle aber das 18 ist mir ein rätsel

Sir Rufo 29. Apr 2014 19:52

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Warum wirfst du bei solchen Fragen "Wo kommt denn das €-Zeichen her?" nicht einfach mal einen Blick in die Online-Hilfe?
  • Können doch andere machen
  • Was ist eine Online-Hilfe
  • Hilfe, was will der von mir
  • Ich kann gar nicht lesen
Delphi-Referenz durchsuchenFloatToStrF und Delphi-Referenz durchsuchenTFloatFormat

Lemmy 29. Apr 2014 19:57

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von rhodan (Beitrag 1257434)
lemmy... :shock: :shock:

bitte erklär mir das, ich will die magic verstehen..

F1 ist dein Freund...

Zitat:

Zitat von rhodan (Beitrag 1257434)
scheint etwas ungenauer zu sein, zumindest wird mir bei einem monatsziel von 20000 (40%=8000€) bei 7999 auch 0€ to go angezeigt...aber die erste variante ist genial...erklärt mir bitte wie das funktioniert...was ist dieses currency? ist das für das eurozeichen verantwortlich?

Dann stelle alles auf Currency um (StrToCur usw.) - funktionell sind beide identisch - ich vermute hier ne Rundungsungenauigkeit von Double/Float. Deshalb Berechnungen mit Geldbeträgen besser mit Currency machen (wenn 4 Nachkommastellen ausreichen)

Grüße

Popov 29. Apr 2014 20:04

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
@rhodan

Sorry, ich dachte du willst nur, dass die Zahl immer positiv ist. Dafür ist die Funktion Abs gedacht. Sie entfernt sozusagen das negative Zeichen.

Zu der Funktion
Delphi-Quellcode:
IfThen
. Die kannte ich zugegeben bisher selber nicht. Das ist ja fast wie bei Excel mit WENN. WENN(Bedingung, Wenn erfüllt, Sonst).

rhodan 29. Apr 2014 20:22

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
@ Sir Rufo

..nicht gleich so aggressiv:shock:
ich hab bis heute noch nie die F1 hilfe benutzt, bin nie darauf gestossen bzw wusste es nicht...hab sie grad mal getested und sie scheint nützlich zu sein, werde sie in zukunft sicherlich benutzten..und generell bin ich jemand der zuvor google benutzt oder der mit der suche nach threads vertraut ist...auch wenn es nicht so scheint da ich recht viele threads eröffnet habe in den letzten 48 stunden, würde ich mich doch als jemanden bezeichnen der zuerst versucht selbst eine lösung zu finden und sich umschaut..

ich halte nichts davon wenn andere meine arbeit machen, und wenn mir doch jemand code vorkaut der funktioniert dann bin ich sehr dankbar und versuche jedesmal zu verstehen wie das genau funktioniert anstatt zu kopieren und einzufügen und mich nicht weiter drum zu kümmern:?
ich versuche mich schon delphi technisch weiterzubilden, also verurteile mich bitte nicht nur weil ich mal ne direkte frage zu nem code stelle der geposted wurde...:shock:

@ popov danke dir trotzdem, danke für deine unterstützung

Sir Rufo 29. Apr 2014 21:43

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Auch wenn ich das nicht so recht glauben kann hier noch ein spezieller Hinweis, falls es doch so sein sollte:

Unter Windows ist die Funktionstaste F1 als Hilfe-Taste quasi Standard und funktioniert nicht nur in der Delphi-IDE. Auch andere bekannte Standard-Programme (z.B. Office-Pakete) haben diese Funktion auch mit Leben gefüllt, oft sogar auch noch kontext-sensitiv.

Speziell die Delphi-IDE bietet hier aber noch wesentlich mehr um das Programmieren zu erleichtern und es macht immer Sinn einen Blick in die Dokumentation zu werfen um sich alleine mit der Bedienung der IDE besser zu befassen.

Mathematiker 29. Apr 2014 22:23

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Hallo,
Zitat:

Zitat von rhodan (Beitrag 1257445)
..nicht gleich so aggressiv:shock:

Komisch. Kaum spricht mal jemand klar und deutlich aus, was Fakt ist, so gilt er als aggressiv?!
Seit wann ist konstruktive(!) Kritik aggressiv?
Zitat:

Zitat von rhodan (Beitrag 1257445)
ich hab bis heute noch nie die F1 hilfe benutzt, bin nie darauf gestossen bzw wusste es nicht...hab sie grad mal getested und sie scheint nützlich zu sein, werde sie in zukunft sicherlich benutzten..

Das erklärt alles!
Weltweit unterziehen sich täglich Programmierer (auch die von Delphi!) der mühevollen und lästigen Pflicht, Online-Hilfen sowie Handbücher/Dokumentationen für Ihre Produkte zu erstellen und scheinbar nutzt sie kaum jemand. Irgendwie ist das extrem frustrierend.

Beste Grüße
Mathematiker

Wolfgang Mix 29. Apr 2014 22:28

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
@ himi
Betr. Post #7
Lass Tote ruhen, Larsi hat schon genug gelitten.
Ich gebe allerdings zu, dass ich den Vorgang lange als
PDF gesichert haben. Mathematisch für Grundlagen-
Forschung auf jeden Fall lesenswert.:-D

//OT :detlefH hat heute Geburtstag
Liebe Grüße Wolfgang //OT

Stevie 29. Apr 2014 22:42

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von Mathematiker (Beitrag 1257456)
Hallo,
Zitat:

Zitat von rhodan (Beitrag 1257445)
..nicht gleich so aggressiv:shock:

Komisch. Kaum spricht mal jemand klar und deutlich aus, was Fakt ist, so gilt er als aggressiv?!
Seit wann ist konstruktive(!) Kritik aggressiv?

Naja, sein Kommentar war schon ein bisschen bissig ;) (obwohl ich die 4 Möglichkeiten lustig fand - "I nehm die Nummer 3")
Das liegt wohl daran, dass er zu viel auf Stackoverflow unterwegs is :lol:

Popov 30. Apr 2014 00:48

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von Mathematiker (Beitrag 1257456)
Komisch. Kaum spricht mal jemand klar und deutlich aus, was Fakt ist, so gilt er als aggressiv?!

Das hängt immer davon ab wie der Empfänger es versteht. Es gibt Menschen die sind direkt (zähle mich dazu), ihre direkte Art wird aber nicht selten als aggressiv empfunden. Wenn ich zum Beispiel zehn mal einem Kollegen sage er soll bitte endlich seine Arbeit fertig machen und nicht ständig nur quatschen, aber natürlich so, dass das nicht seine Gefühle verletzt, passiert oft nichts. Höfliche Art wird oft überhört. Bin ich das elfte Mal höflich, aber direkt, beschwert er sich darüber, dass ich seine Gefühle verletzt habe.

Wo ist die Zeit wo man auf die Gefühle von Männern pfeifen konnte. Vorbei, vorbei...

p80286 30. Apr 2014 09:54

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Ich seh da nicht's agressives, meiner Meinung nach hat er den Nagel zu 100% genau getroffen.
Es gibt 3 Sorten von Menschen:
a) Sie suchen als erstes die Hilfe-Taste (nicht immer F1!) und den Menue-Eintrag für die Hilfe.
b) Nachdem man sie darauf hingewiesen hat, daß es eine Hilfe gibt, nutzen sie sie auch und sind manchmal dankbar für den Hinweis.
c) Sie kontern den Hinweis auf die Hilfe mit "Das Programm muß selbsterklärend sein"

Gruß
K-H

Stevie 30. Apr 2014 13:23

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von p80286 (Beitrag 1257477)
Es gibt 3 Sorten von Menschen:
a) Sie suchen als erstes die Hilfe-Taste (nicht immer F1!) und den Menue-Eintrag für die Hilfe.
b) Nachdem man sie darauf hingewiesen hat, daß es eine Hilfe gibt, nutzen sie sie auch und sind manchmal dankbar für den Hinweis.
c) Sie kontern den Hinweis auf die Hilfe mit "Das Programm muß selbsterklärend sein"

d) Sie schauen in die Hilfe und finden nix, weil bei den meisten Einträgen nur steht "... verfügt über keine Informationen zu ..." und regen sich darüber auf (meistens Delphi Entwickler) :twisted:

himitsu 30. Apr 2014 14:18

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
g) Haben keine Lust und lassen es lieber Andere machen

Jumpy 30. Apr 2014 14:26

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von Stevie (Beitrag 1257519)
Zitat:

Zitat von p80286 (Beitrag 1257477)
Es gibt 3 Sorten von Menschen:
a) Sie suchen als erstes die Hilfe-Taste (nicht immer F1!) und den Menue-Eintrag für die Hilfe.
b) Nachdem man sie darauf hingewiesen hat, daß es eine Hilfe gibt, nutzen sie sie auch und sind manchmal dankbar für den Hinweis.
c) Sie kontern den Hinweis auf die Hilfe mit "Das Programm muß selbsterklärend sein"

d) Sie schauen in die Hilfe und finden nix, weil bei den meisten Einträgen nur steht "... verfügt über keine Informationen zu ..." und regen sich darüber auf (meistens Delphi Entwickler) :twisted:

Zitat:

Zitat von himitsu (Beitrag 1257526)
g) Haben keine Lust und lassen es lieber Andere machen

Sind E und F gerade Kaffee holen? :-D

Sorry für's OT.

Popov 30. Apr 2014 14:42

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von p80286 (Beitrag 1257477)
Es gibt 3 Sorten von Menschen:

Laut Clint Eastwood gibt es nur 2 Arten von Menschen auf dieser Welt. Die einen haben einen geladenen Revolver. Und die anderen... buddeln. :twisted:

bernerbaer 30. Apr 2014 15:18

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Wie wärs mal damit (nur so hingetippt ohne Überprüfung)?

Delphi-Quellcode:
var
c_ziel, c_Umsatz, c_Prozent:  Currency;

begin
   if TryStrToCurr(Monatsziel.Text,c_ziel) and TryStrToCurr(Umsatz.Text,c_umsatz) then
   begin
      c_Prozent:= c_ziel/100*40 - c_Umsatz;
      if c_Prozent >=0 then
        provi1togo.Caption:= CurrToStrF(c_Prozent, ffGeneral, 2)
      else
        provi1togo.Caption:= 'Umsatzziel erreicht';

   end
   else
    ShowMessage('Geben Sie gültige Werte ein');

end;

p80286 30. Apr 2014 15:41

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
[total offtopic]
“There are two kinds of people in the world, those with loaded guns, and those who dig. You dig.” - Clint Eastwood, 1966, “The Good, The Bad and The Ugly” (Il Buono, il Brutto, il Cattivo)
und aus dem gleichen Film:

There are two kinds of people in the world, my friend: Those with a rope around the neck, and the people who have the job of doing the cutting.

There are two kinds of spurs, my friend. Those that come in by the door; those that come in by the window.

[/total offtopic]
:wink:

Perlsau 30. Apr 2014 18:36

AW: Keine minuswerte anzeigen bei Prozentrechnung
 
Zitat:

Zitat von Mathematiker (Beitrag 1257456)
Komisch. Kaum spricht mal jemand klar und deutlich aus, was Fakt ist, so gilt er als aggressiv?!

Für viele Menschen ist ein anderer genau dann aggressiv, wenn sie sich angegriffen fühlen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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