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

""" Setup the inverse field(s) of ``self``. """
        pass
    #
    
    #
    def _setup_related_full(self, model):
        """ Setup the attributes of a related field. """
        
        if isinstance(self.related, basestring):
            self.related = tuple(self.related.split('.'))
        
        target = model
        for name in self.related:
            field = target._fields[name]
            field.setup_full(target)
            target = target[name]
        self.related_field = field
        
        if self.type != field.type:
            raise TypeError("Type of related field %s is inconsistent with %s" % (self, field))
        
        self.depends = ('.'.join(self.related),)
        self.compute = self._compute_related
        if not (self.readonly or field.readonly):
            self.inverse = self._inverse_related
        if field._description_searchable:
            
            self.search = self._search_related