Runden auf zwei Nachkommastellen
Hallo zusammen, wie rundet man auf zwei Nachkommastellen?
Folgender Code habe ich erstellt und soweit funktioniert es auch, siehe unten. Leider übernimmt es als stylend Text das Zahlenformat nicht nicht aus dem Funktionsfeld.
let Ausbeute := 100 / Auftragsmenge * 'Menge erstellt';
styled(text(Ausbeute), "", if Ausbeute <= 90 then "red" else "green" end, "");
styled(text(Ausbeute), "", if Ausbeute >= 110 then "red" else "green" end, "")
Das Ergebnis: 97,73094246621908
Danke für Eure Hilfe.
14 Antworten
-
ich nutze folgende globale Funktion um kaufmännisch auf 2 Stellen zu runden:
function kauffRund(Wert : number) do
let sgn := 0;
let ergebnis := 0;
if Wert > 0 then
sgn := 1
else
if Wert < 0 then sgn := -1 end
end;
let zergebnis1 := sgn * floor(abs(Wert) * 100 + 0.5);
let zergebnis2 := 100;
ergebnis := zergebnis1 / zergebnis2;
ergebnis
end;Vielleicht hilft das ja weiter
-
Zum Runden gibt es die Funktion round():
let Ausbeute := round(100 / Auftragsmenge * 'Menge erstellt', 2);
-
Wenn das Ergebnis an sich nicht verändert, aber nur die Ausgabe gerundet werden soll, dann kann man auch mit
format(Ausbeute, "0.00")
das gewünschte Ergebnis anzeigen lassen. Die "0.00" sorgt dafür, dass nur zwei Ziffern hinter dem Komma kommen - sauber auf- bzw. abgerundet.
-
Danke für Eure Tipps . Nun ist mir aufgefallen, dass meine Bedingte Formatierung
styled(text(Ausbeute), if Ausbeute <= 90 then "red" else "green" end, "");
styled(text(Ausbeute), if Ausbeute >= 110 then "red" else "green" end, "")nicht funktioniert. Irgendwie logisch nur wie macht man es richtig?
Ich möchte alles zwischen >= 90 und <= 110 grün und alles ausserhalb rot.
Danke bereits im Voraus.
-
Wie wäre es mit
let colour := "red"; if Ausbeute >= 90 or Ausbeute <= 110 then colour := "green" end; styled(string(Ausbeute), colour);
--> Hintergrund farbig ... wenn der Text farbig sein soll, dann
styled(string(Ausbeute), "", colour, "");
-
Du hast zumindest den Feldbezug auf Ausbeute hinter dem "or" weggelassen.
-
let Ausbeute := round(100 / Auftragsmenge * 'Menge erstellt', 2); let colour := "red"; if Ausbeute >= 90 and Ausbeute <= 110 then colour := "green" end; styled(string(Ausbeute), colour)
Vielleicht so. Das if-Statement ist nicht ganz korrekt.
-
Danke nun klappt es . Jetzt ist es mir auch offensichtlich warum es am Anfang nicht funktionieren wollte. Danke Euch vielmals.
-
Hallo zusammen, es gibt eine weitere Bedingung die bei der Ausbeute berücksichtigt werden muss. Ich versuche die Bedingung hier einmal dazulegen.
Der aktuelle Code ist nun so wie von Mirko vorgeschlagen, funktioniert.
let Ausbeute := round(100 / Auftragsmenge * 'Menge erstellt', 2); let colour := "red"; if Ausbeute >= 90 and Ausbeute <= 110 then colour := "green" end; styled(string(Ausbeute), colour)
Nun muss ich aber bei der Ausbeute die Auftragsmenge neu berücksichtigen. Liegt die Auftragsmenge bei <= 3000 darf die Ausbeute zwischen >= 90 and <= 110 liegen. Liegt die Auftragsmenge bei >= 3000, darf die Ausbeute zwischen >=95 and <= 105 liegen. Alles ausserhalb der beiden Ausbeute-Bedingungen wäre dann "rot".
Kann mir netterweise nochmals jemand behilflich sein und mir einen Vorschlag machen, wie der Code aussehen muss.
Ich habe bereits einige Selbstversuche unternommen, leider ohne funktionierendem Ergebnis :-(.
Danke. Ich freue mich auf Eure Ideen.
Content aside
- vor 2 JahrenZuletzt aktiv
- 14Antworten
- 537Ansichten
-
5
Folge bereits