[FIX] web: human readability of negative numbers.

Before this commit, negative numbers are never rendered as human readable (e.g. 34000 -> 34k).

closes odoo/odoo#42789

Taskid: 2160790
X-original-commit: b51877c4c4c9d8cd873dd0205954fd807d62ee01
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit is contained in:
Arnaud Joset
2020-01-06 15:46:28 +00:00
parent 7f3b2b2adf
commit c411bdfe4d
2 changed files with 18 additions and 1 deletions
+3
View File
@@ -338,6 +338,8 @@ var utils = {
// formatterCallback seems useless here.
return number + 'e' + numberMagnitude;
}
var sign = Math.sign(number);
number = Math.abs(number);
for (var i = val.length; i > 0 ; i--) {
var s = Math.pow(10, i * 3);
if (s <= number / Math.pow(10, minDigits - 1)) {
@@ -346,6 +348,7 @@ var utils = {
break;
}
}
number = sign * number;
return formatterCallback('' + number) + symbol;
},
/**
+15 -1
View File
@@ -68,7 +68,7 @@ QUnit.module('core', {}, function () {
});
QUnit.test('human_number', function (assert) {
assert.expect(13);
assert.expect(26);
var human_number = utils.human_number;
@@ -85,6 +85,20 @@ QUnit.module('core', {}, function () {
assert.strictEqual(human_number(1.0045e+22, 3, 1), '1.005e+22');
assert.strictEqual(human_number(1.012e+43, 2, 1), '1.01e+43');
assert.strictEqual(human_number(1.012e+43, 2, 2), '1.01e+43');
assert.strictEqual(human_number(-1020, 2, 1), '-1.02k');
assert.strictEqual(human_number(-1020000, 2, 2), '-1020k');
assert.strictEqual(human_number(-10200000, 2, 2), '-10.2M');
assert.strictEqual(human_number(-1020, 2, 1), '-1.02k');
assert.strictEqual(human_number(-1002, 2, 1), '-1k');
assert.strictEqual(human_number(-101, 2, 1), '-101');
assert.strictEqual(human_number(-64.2, 2, 1), '-64');
assert.strictEqual(human_number(-1e+18), '-1E');
assert.strictEqual(human_number(-1e+21, 2, 1), '-1e+21');
assert.strictEqual(human_number(-1.0045e+22, 2, 1), '-1e+22');
assert.strictEqual(human_number(-1.0045e+22, 3, 1), '-1.004e+22');
assert.strictEqual(human_number(-1.012e+43, 2, 1), '-1.01e+43');
assert.strictEqual(human_number(-1.012e+43, 2, 2), '-1.01e+43');
});
});