Secondo me la chiave è nel type del parameter:
tu lo dichiari decimal, ma poi gli passi string (la funzione che rimpiazza la "," col "." ritorma testo, giusto?).
prova a dichiarare i parametri string, tanto le conversioni sono implicite.

Ciao,
b.