Hallo!
Ich suche seit 2 Stunden den Fehler in einer Rundungsfunktion, die den Parameter "fl" auf 2 Nachkommastellen abrunden soll, und hoffe jetzt auf Euer Schwarmwissen:
! Quadratmeter-Angaben formatieren
FUNC qmeter ( fl , dtz )
fl_str = STR ( INT ( fl * 100 ) / 100 , 8 , 2 )
fl1 = STRSUB ( fl_str , 1 , STRSTR ( fl_str , "." ) - 1 )
fl2 = STRSUB ( fl_str , STRLEN ( fl1 ) + 2 , 2)
IF dtz = "punto" THEN !Punkt oder Komma als Dezimatrennzeichen
fl_str = fl1 + "." + fl2 + " m²"
ELSE
fl_str = fl1 + "," + fl2 + " m²"
ENDIF
RETURN fl_str
FUNC_END Wenn "fl" z.B. 55,71 beträgt, wird der korrekt gerundete Wert (55,71) ausgegeben, bei 65,71 wird jedoch auf 65,70 abgerundet.
Auch 131,42 wird fälschlicherweise auf 131,41 reduziert.
Hat irgendjemand eine Idee, wo der Fehler steckt? Oder vielleich einen Tip, wie man das eleganter lösen könnte?
Vielen Dank schonmal,
Stefan
GEA Arquitectos S.L.P.
Calle Gerardo Diego 6A | 41013 Sevilla | Spain

