AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Keine minuswerte anzeigen bei Prozentrechnung
Thema durchsuchen
Ansicht
Themen-Optionen

Keine minuswerte anzeigen bei Prozentrechnung

Ein Thema von rhodan · begonnen am 29. Apr 2014 · letzter Beitrag vom 30. Apr 2014
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#1

Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 18:28
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).

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

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

bitte um hilfe...

danke aus Hamburg
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 18:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#3

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 18:54
wenn ich hier FloattoStr in ABS ändere bekomme ich ne fehlermeldung
[DCC Fehler] Source.pas(259): E2010 Inkompatible Typen: 'string' und 'Extended' den wald vor lauter bäumen mal wieder ?!
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:09
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: FloatToStr(Abs(-42.1));
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#5

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:30
hmmm...

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
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:32
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....
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:33
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von rhodan
rhodan

Registriert seit: 4. Okt 2005
Ort: Hamburg
150 Beiträge
 
Delphi 7 Personal
 
#8

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:47
lemmy...

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???

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

Geändert von rhodan (29. Apr 2014 um 19:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:52
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Keine minuswerte anzeigen bei Prozentrechnung

  Alt 29. Apr 2014, 19:57
lemmy...

bitte erklär mir das, ich will die magic verstehen..
F1 ist dein Freund...

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:38 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