use the bc* functions for floating point operations

The point is to minimize the chance of rounding errors that can occur between platforms, and to specify the way we handle floating point calculation

Only implemented for HostedRequests