[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:
@@ -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;
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user