This off the top of my head, so there may be a better way:
Trap it as Character. Then make a calculated field as numeric and use this formula:
Where field is the name of your character field.
This searches for the minus sign within your field. It it doesn't find it, then just return the field back. If it does find it, it returns the substring of your field starting at the point where it found the minus sign. Either string is passed back to the VAL() function to convert it into a number.
EDIT: After actually toying with it in Monarch, I've come up with this alternate formula:
instr() will return the position of the minus sign if found or 0 if not. Since Substr() can't use 0 as a starting point we use MAX() with 1 so that if it's 0, it will return 1. You don't really need the last part of Substr() Monarch will just return the correct length of the field.
This is equivalent in functionality, but might be a bit more readable for a beginner:
/* strip out the negative sign, convert it to a number, and then multiply that by -1 */
/*otherwise just convert it to a number */
Of course, Nick's formula works perfectly well too.