Das liegt daran, dass du den split direkt auf das Datenbankfeld anwendest.
Die meisten (wenn nicht alle) Preise werden in JTL als Festkommazahl
decimal(25,13)
gespeichert. Das heißt, das was in dem Feld steht hat immer 13 Ziffern rechts vom Dezimaltrennzeichen (deshalb heißt das
Festkommazahl - im Gegensatz zur
Fließkommazahl).
Wenn du in der
Wawi 1,2 eingibst, steht in der Datenbank 1.2000000000000
und selbst wenn in der DB 1,234567890123 stehen würde, die ermittelte Anzahl der Nachkommastellen wäre in deinem obigen Code immer 13 und damit größer als 2 und folglich gibt dir der Code immer eine Eins aus.
Aber du hast ja mit der Regex bereits eine für deinen Anwendungsfall funktionierende Lösung gefunden
..ich wollte dir auch nicht einen anderen Weg aufschwatzen. Ich hatte mich beim Lesen deines Beitrages einfach nur gefragt, wie ICH das eigentlich machen würde, da ich halt
immer wenn möglich einen großen Bogen um RegEx mache.
Aber eigentlich würde ich sowas sowieso nicht mit Liquid machen. Ich lass alle Berechnungen und Co immer gerne von der Datenbank machen und gebe mit Liquid dann nur noch das Ergebnis aus.