Du kannst die Stellen über eine JS Transformation entfernen, auf diese Weise landen sie erst gar nicht im Item.
Aber zuerst mal: was erwartest Du denn, was in der Rule passieren soll? Du liest einen Wert in eine Variable ein und überträgst einen Teilstring aus dieser Variablen in eine zweite Variable. Wie soll das das ursprüngliche Item beeinflussen? Ich hoffe, wir sind uns einig, dass im Gegenteil Auswirkungen auf das Item ein absolutes NoGo wären.
Ungebundene Items: Ein ungebundenes Item ist eines, bei dem kein Link auf einen Channel gesetzt ist. Du kannst einfach in der UI auf die Itemliste gehen und ein Item anlegen, schon hast Du ein ungebundenes Item.
String Item für Zählerstand: Mach das bitte nicht. Wenn doch der Wert ohne Weiteres als Zahl angeliefert wird, warum nutzt Du nicht diesen Wert? Ein String kann nicht mit einer Zahl verglichen werden (ist der Zählerstand größer oder kleiner als...) und Du kannst den Wert nicht als Graph im zeitlichen Verlauf darstellen lassen.
Aber es geht noch weiter... Wenn Du nämlich den Channel direkt als Number Channel definierst, gibt es unter den advanced Options einen unscheinbaren Parameter
Einheit. Wenn Du dort einfach nur Wh einträgst, solltest Du anschließend diesen Channel mit einem Number:Energy Item verbinden können.
In der Folge musst Du keine Einheit anhängen.
Aber es wird noch besser... Du kannst dennoch für die Ausgabe eine Einheit anhängen

z.B. kWh. Nur dass openHAB nun
automatisch das Komma verschiebt! Und die Nachkommastellen, die Du nicht sehen willst, kannst Du mit der Formatierung %.0f unterdrücken. Der im Item gehaltene Wert ist dann aber der vollständige Messwert, keiner, der abgeschnitten wurde.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet