I found an issue in the bcmath component and tracked down the scale issue

See test case: bcadd("19.99","500",2), was producing -4.8, should have produced -480.01.

The fix is based on libbcmath code.