slightly better numeric parsing