made a fix for the floating point precision bug

The fix was to make the decimal rounding and converting to number object
by unary+
added more test case and split the test case into diff test units