Floating point hell

First of all, what is up with this?

trace(19.99 * 100); // 1998.9999999999998

Second of all, how would I go about turning 1.52999 into 1.52 instead of 1.53?? I would just like to pop off everything after two decimals but toFixed(2) would round up my example to 1.53… Any ideas? Someone been here before?

Thanks!