Impacted versions:10

Steps to reproduce:
Following the code in https://www.odoo.com/documentation/10.0/api_integration.html both in a fresh install and against 'https://demo.odoo.com/start' trows a type error

Current behavior:
Now I get an error when executing:

```
ids = models.execute_kw(db, uid, password,  'res.partner', 'search',
    [[['is_company', '=', True], ['customer', '=', True]]],
    {'limit': 1})
[record] = models.execute_kw(db, uid, password,
    'res.partner', 'read', [ids])
# count the number of fields fetched by default
len(record)
```

In particular it seems to be a type error (cannot marshal class odoo.tools.float_utils.float_precision)

Expected behavior:
I would expect it to behave as in the documentation

openerp/fields.py
if isinstance(value, dict):
            
            return value.get('id', False)
        return int(value or 0)
    def convert_to_read(self, value, record, use_name_get=True):
        
        
        if value and value > xmlrpclib.MAXINT:
            return float(value)
        return value
    def _update(self, records, value):
        
        records._cache[self] = value.id or 0
    def convert_to_export(self, value, record):
        if value or value == 0:
            return value if record._context.get('export_raw_data') else ustr(value)
        return ''
class Float(Field):
    """ The precision digits are given by the attribute
    :param digits: a pair (total, decimal), or a function taking a database
                   cursor and returning a pair (total, decimal)
    """
    type = 'float'
    _slots = {
        '_digits': None,                
        'group_operator': 'sum',
    }
    def __init__(self, string=Default, digits=Default, **kwargs):