Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Konvertierungsproblem mit StrToFloat


mr_r0ssi - Do 18.03.04 11:25
Titel: Konvertierungsproblem mit StrToFloat
Hallo,

ich habe ein Problem mit StrToFloat. Nach einlesen meiner Daten aus einer Textdatei + anschliessender Konvertierung in ein entsprechendes Array, sehe ich mit dem Debugger zB. anstatt 58,8 --> 58,799999237 oder 58,7 --> 58,7000000763 oder aber 58,5 --> 58,5.
Das Array ist vom Typ Double und auch die Funktion RoundTo bringt keine Verbesserung.
Ich wäre ueber ein paar Tips sehr dankbar.

Stephan


Nele - Do 18.03.04 12:35

Hi,
das Problem haben/hatten wir auch - bevor ich mit einer Zahl vom Typ Double arbeite runde ich diese Zahl, auch wenn sie im Prinzip gerundet sein müßte... Allerdings benutzen wir nicht RoundTo, sondern eine eigene Funktion, die im Prinzip aber dasselbe macht, aber den Rückgabewert vom Typ currency hat [bringt dann evtl. anere Probleme mit sich :( ]


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
function RundenStellen(zahl: currency; stellen: integer): currency;
var x: currency;
begin
  x := StrToFloat(FloatToStrF(zahl, ffFixed, 15, Stellen));
  result := x;
end;


ob dich das weiterbringt weiß ich nict, aber du kannst es ja mal probieren...
Gruß
Nele