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 not self.string and not self.related:
            
            self.string = name.replace('_', ' ').capitalize()
        self._setup_default(model, name)
    def _setup_default(self, model, name):
        """ Determine ``self.default`` and the corresponding ``model._defaults``. """
        self.default = None
        model._defaults.pop(name, None)
        
        
        for klass in type(model).__mro__:
            if name in klass.__dict__:
                field = klass.__dict__[name]
                if not isinstance(field, type(self)):
                    
                    return
                if 'default' in field.args:
                    
                    value = field.args['default']
                    if value is not None:
                        self.default = default_new_to_new(self, value)
                        model._defaults[name] = default_new_to_old(self, value)
                    return
            
            if getattr(klass, 'pool', None):
                continue
            defaults = klass.__dict__.get('_defaults') or {}
            if name in defaults:
                
                value = defaults[name]