Autor Beitrag
Brujah
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 04.11.04 10:43 
Hallo Leute,

ich bin neu in diesem Forum und habe folgendes Problem:

Ich habe eine Realzahl und möchte diese in 2 SpinEdit Boxen darstellen.
In der ersten Box die Vorkommastellen in der zweiten die Nachkommastellen.

trunc(zahl) gibt mir die Vorkommastellen. Aber wie bekomme ich die Nachkommastellen ?
Ich habe es schon mit frac() probiert. Da bekomme ich aber folgende Meldung:
[Fehler] Unit4.pas(144): Inkompatible Typen: 'Integer' und 'Extended'

Kann mir da jemand weiterhelfen ?

Danke schonmal,
Markus


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mo 08.11.2004 um 13:06
st-matze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 138

Win 3.11, Win 95, Win 98, Win XP
D7 Ent, D6 Pers, (D5 Pers)
BeitragVerfasst: Do 04.11.04 10:50 
Definition von frac
ausblenden Delphi-Quelltext
1:
function Frac(X: Extended): Extended;					


frac gibt etwas im format 0,12345 zurück

nun musste einfach etwas machen wie

ausblenden Delphi-Quelltext
1:
  nachkommastellen:=round(frac(X) * power(10,anzahl_betrachteter_nachkommastellen));					


dann bekommst du nen integer herraus für die angegebene anzahl von nachkommastellen, weitere nachkommastellen werden ignoriert (ROUND)

st-matze
Brujah Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 04.11.04 11:13 
Okay, das bringt mich ein Stück weiter. Danke!

Im Moment ist mir noch nicht klar wie ich rausfinden kann wie
viele Nachkommastellen die Zahl nun hat.
Ich muss mit 10 oder mit 100 multiplizieren da maximal 2 Stellen erlaubt sind.

Eine Funktion Power() gibts bei mir nicht...

Markus
st-matze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 138

Win 3.11, Win 95, Win 98, Win XP
D7 Ent, D6 Pers, (D5 Pers)
BeitragVerfasst: Do 04.11.04 11:27 
Info: Power ist in der Unit Math definiert //Delphi Hilfe hilft

Wenn du sagst, dass eh maximal zweistellen erlaubt sind, kannst du es auch vereinfachen
und gleich sagen:

ausblenden Delphi-Quelltext
1:
nachkommastellen:=round(frac(X) * 100);					
Brujah Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 04.11.04 11:28 
Habs hinbekommen. Multipliziere einfach mit 100.
Und wenn ein Modulo bei / 10 eine 0 ergibt teile ich wieder durch 10 :-)

Markus