I agree with pwoneill. It is the same when i tried on 8.1.6 and 8.0.4 on solaris and aix

SQL> select to_number('54.12','99.99') from dual;

TO_NUMBER('54.12','99.99')
==========================
54.12

SQL> c/54.12/,
1* select to_number(',','99.99') from dual
SQL> /

TO_NUMBER(',','99.99')
======================
0

SQL>


You might require some patch.

Sam