AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Formatfunktion würfelt die Datentypen wahllos zusammen
Thema durchsuchen
Ansicht
Themen-Optionen

Formatfunktion würfelt die Datentypen wahllos zusammen

Ein Thema von grenzgaenger · begonnen am 9. Feb 2008 · letzter Beitrag vom 9. Feb 2008
Antwort Antwort
Seite 2 von 2     12   
grenzgaenger
(Gast)

n/a Beiträge
 
#11

Re: Format! Bin ich blöd?

  Alt 9. Feb 2008, 19:52
Zitat von inherited:
Von welchem Typ sind die beiden Variablen?
@taaktaak: Sollte eigentlich auch ohne diese Klammern funktionieren.
Delphi-Quellcode:
ePercent.Text := format('%.3f', [eHigh.value //extended
                                 / items[0].Price //currency
                                 * 100]) + '%';
mal davon abgesehen, dürften hier nur die kommastellen verschoben sein...


Zitat von taaktaak:
Bist du denn sicher, dass die beiden Variablen auch den von dir erwarteten Inhalt haben?
yep, bin ich. da ich da mit dem debugger drauf stand... aber was rauskommt ist einfach ein quatsch von einer %-zahl...

[edit=SirThornberry]Beiträge zusammengeführt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Format! Bin ich blöd?

  Alt 9. Feb 2008, 19:55
Könntest du dem Beitrag bitte einen aussagekräftigen Namen geben? "Format" sagt so gut wie nicht aus worum es bei deinem Problem geht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#13

Re: Format! Bin ich blöd?

  Alt 9. Feb 2008, 19:58
Tja, ich habe das jetzt auch mal "nachgestellt"...

Delphi-Quellcode:
var a,b : Integer;

a:=600;
b:=400;
showmessage(format('%0.3f',[a/b*100])+'%');
Bei mir zeigt er 150,000% an - so wie es sein soll
Ralph
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#14

Re: Format! Bin ich blöd?

  Alt 9. Feb 2008, 20:07
Zitat von taaktaak:
Tja, ich habe das jetzt auch mal "nachgestellt"...

Delphi-Quellcode:
var a,b : Integer;

a:=600;
b:=400;
showmessage(format('%0.3f',[a/b*100])+'%');
Bei mir zeigt er 150,000% an - so wie es sein soll
theoretisch, sollt es so funktionieren, wie bei dir ... nur schafft das mein delphi nich...

daher hab ich jetzt eine funktion erstellt ...

Delphi-Quellcode:
 function _percent(value, base: double): string;
 begin
   result := format('%.3f%%',[value / base * 100]);
 end;
wenn ich dieser die variablen übergebe, funzt es...

tja, was soll man dazu noch sagen...
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: Format! Bin ich blöd?

  Alt 9. Feb 2008, 21:08
Zitat von grenzgaenger:
theoretisch, sollt es so funktionieren, wie bei dir ... nur schafft das mein delphi nich...
Du weisst, das das Problem nicht Delphi ist, sondern davor sitzt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#16

Re: Formatfunktion würfelt die Datentypen wahllos zusammen

  Alt 9. Feb 2008, 21:27
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:

ePercent.Text := format('%.3f', [(100.0 / items[0].Price * eHigh.value)]) + '%'; Auch die Berechnung außerhalb der Format-Funktion liefert mit dem Original-Ausdruck das richtige Resultat.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:20 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