diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2020-03-11 07:44:40 +0000 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2020-03-16 12:01:57 +0000 |
| commit | a12479aaa8cb2c8311c8d6c0fceb0dc641b44eac (patch) | |
| tree | bb3aca9fcf4003f644feaecf64739c5fed341d80 /odoo/tools/config.py | |
| parent | 0067aec0ddaf75d2608a6acc12cb26c08f70d12e (diff) | |
[FIX] web: rounding error
In JavaScript, the following computation introduces numerical errors:
```
Math.pow(10, -4) = 0.00009999999999999999
Math.pow(10, -5) = 0.000009999999999999999
```
In the context of `round_decimals`, such errors propagate to
`round_precision`, ultimately leading to inconsistencies between Python
and JS (see #47300 for detailed use case).
Instead of computing `Math.pow(10, decimals)`, we parse the scientific
notation to prevent such inaccuracies.
We also introduce tests in line with the Python tests.
opw-2205092
closes odoo/odoo#47694
X-original-commit: cb471897bfa08d1fee6a9f49e90d9c120e1733fc
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Diffstat (limited to 'odoo/tools/config.py')
0 files changed, 0 insertions, 0 deletions
