result:= StrToFloat(format('%.' + IntToStr(decPlaces) + 'n', [toFormat]));
Wenn Du toFormat mit n formatierst werden wieder Tausendertrennzeichen in den String eingeführ.
StrToFloat mag aber keine Tausendertrennzeichen.
Wenn Du hier die Nachkommastellen haben willst,machen die nur als String einen Sinn,
denn wenn Du das ganze wieder in einen Floatwert konvertierst ist die Angabe von Nachkommastellen
relativ zweckfrei. Die Realwerte haben nur soviele Nachkommastellen wie nötig sind.
result:= StrToFloat(format('%.' + IntToStr(decPlaces) + 'f', [toFormat]));
[/delphi]
Ist unsinning, kürzer ist
result:=toFormat;
und kommt auf das gleiche heraus.
Die getrennte Angabe von Nachkommastellen in der
DB macht für mich nur Sinn wenn value ein Integerwert ist.
Floats werden in der
DB wohl mit der richtigen Nachkommastellenanzahl gespeichert.
Vielleicht macht es noch Sinn um die Maximale Nachkommastellenanzahl zu begrenzen,
dann würde aus 123456,33333333 mit NKS=4 -> 123456,3333 -> was aber die Rechengenauigkeit einschränckt.
Deswegen würde ich runden, wenn das Gesamtergebnis präsentiert werden soll und nicht schon beim Einlesen
der einzelnen Werte.
Grüße
Klaus