![]() |
Re: Format! Bin ich blöd?
Zitat:
Delphi-Quellcode:
mal davon abgesehen, dürften hier nur die kommastellen verschoben sein...
ePercent.Text := format('%.3f', [eHigh.value //extended
/ items[0].Price //currency * 100]) + '%'; Zitat:
[edit=SirThornberry]Beiträge zusammengeführt - Mfg, SirThornberry[/edit] |
Re: Format! Bin ich blöd?
Könntest du dem Beitrag bitte einen aussagekräftigen Namen geben? "Format" sagt so gut wie nicht aus worum es bei deinem Problem geht.
|
Re: Format! Bin ich blöd?
Tja, ich habe das jetzt auch mal "nachgestellt"...
Delphi-Quellcode:
Bei mir zeigt er 150,000% an - so wie es sein soll
var a,b : Integer;
a:=600; b:=400; showmessage(format('%0.3f',[a/b*100])+'%'); |
Re: Format! Bin ich blöd?
Zitat:
daher hab ich jetzt eine funktion erstellt ...
Delphi-Quellcode:
wenn ich dieser die variablen übergebe, funzt es... :shock: :shock: :shock:
function _percent(value, base: double): string;
begin result := format('%.3f%%',[value / base * 100]); end; tja, was soll man dazu noch sagen... :drunken: :drunken: :drunken: |
Re: Format! Bin ich blöd?
Zitat:
|
Re: Formatfunktion würfelt die Datentypen wahllos zusammen
Hallo,
meiner Meinung nach ist in diesem Fall der Delphi-Compiler das Problem. Der wird nämlich durch die MixedMode-Operation (Currency und Extended) innerhalb der Format-Funktion offenbar so irritiert, dass er für den Ausdruck sowohl einen falschen Datentyp ermittelt als auch einen fehlerhaften Code erzeugt. Eine kleine Anpassung und Umstellung der Operanden liefert das erwartete Resultat:
Delphi-Quellcode:
Auch die Berechnung außerhalb der Format-Funktion liefert mit dem Original-Ausdruck das richtige Resultat.
ePercent.Text := format('%.3f', [(100.0 / items[0].Price * eHigh.value)]) + '%';
Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 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