diff --git a/odoo/addons/test_new_api/demo_data.xml b/odoo/addons/test_new_api/demo_data.xml
index ff048467183..ec6a5c8bced 100644
--- a/odoo/addons/test_new_api/demo_data.xml
+++ b/odoo/addons/test_new_api/demo_data.xml
@@ -45,5 +45,11 @@
+
+
+ New API Precision
+
+
+
diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py
index cfa4d48cad5..8e13c37018f 100644
--- a/odoo/addons/test_new_api/models.py
+++ b/odoo/addons/test_new_api/models.py
@@ -284,6 +284,7 @@ class MixedModel(models.Model):
_description = 'Test New API Mixed'
number = fields.Float(digits=(10, 2), default=3.14)
+ number2 = fields.Float(digits='New API Precision')
date = fields.Date()
now = fields.Datetime(compute='_compute_now')
lang = fields.Selection(string='Language', selection='_get_lang')
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index 492255df83e..c0dd3efd536 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -443,6 +443,12 @@ class TestFields(common.TransactionCase):
record.number = 2.4999999999999996
self.assertEqual(record.number, 2.50)
+ def test_21_float_digits(self):
+ """ test field description """
+ precision = self.env.ref('test_new_api.decimal_new_api_number')
+ description = self.env['test_new_api.mixed'].fields_get()['number2']
+ self.assertEqual(description['digits'], (16, precision.digits))
+
def check_monetary(self, record, amount, currency, msg=None):
# determine the possible roundings of amount
if currency:
diff --git a/odoo/fields.py b/odoo/fields.py
index c95cb00eb85..db856b646e4 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -1290,7 +1290,9 @@ class Float(Field):
return self._digits
_related__digits = property(attrgetter('_digits'))
- _description_digits = property(attrgetter('_digits'))
+
+ def _description_digits(self, env):
+ return self.get_digits(env)
def convert_to_column(self, value, record, values=None, validate=True):
result = float(value or 0.0)