Aber mal einen Number- und mal einen String-Wert.
Hm. Stimmt. Ich habe nicht bedacht, dass isNaN('123456')
eben auch false
liefert, weil der String '123456' als Zahl angesehen wird.
Die beiden Zeilen return s;
durch return floatval( s );
zu ersetzen sollte genügen.