Ich bin immer wieder begeistert, wie buggy eine Routine sein kann. Bei der Umwandlung von double-Werten in einen formatierten String, trat folgendes Problem auf: Die Funktion arbeitet korrekt, es sei denn, man gibt einen Wert zwischen 0 und -1 Euro an, dann geht das Vorzeichen verloren. Alles weitere funktioniert korrekt!
do
{
// Rest bilden
int gruppe = ((long)value)%1000;
// nächste Gruppe ermitteln
value /= 1000.0;
// noch mehr da?
if (1.0 < value || -1.0 > value)
{
// mit Nullen auffüllen
// und Punkt setzen
result = "." + String(abs(gruppe),true,3) + result;
}
else
{
// keine Nullen
// Kein Punkt
result = String(gruppe,false,3) + result;
}
}
while (1.0 < value || -1.0 > value);
Na… wer findet den Bug?