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