mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
fix(numberFilter): always convert scientific notation to decimal
Previously, the number filter would format small and large numbers as scientific notation. It now uses toFixed() to ensure that all requested digits are shown.
This commit is contained in:
parent
454bcfa438
commit
a13c01a8e4
2 changed files with 23 additions and 3 deletions
|
|
@ -171,6 +171,11 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
|
|||
}
|
||||
|
||||
if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize);
|
||||
} else {
|
||||
|
||||
if (fractionSize > 0 && number > -1 && number < 1) {
|
||||
formatedText = number.toFixed(fractionSize);
|
||||
}
|
||||
}
|
||||
|
||||
parts.push(isNegative ? pattern.negPre : pattern.posPre);
|
||||
|
|
|
|||
|
|
@ -145,9 +145,24 @@ describe('filters', function() {
|
|||
expect(number(1234.567, 2)).toEqual("1,234.57");
|
||||
});
|
||||
|
||||
it('should filter exponential numbers', function() {
|
||||
expect(number(1e50, 0)).toEqual('1e+50');
|
||||
expect(number(-2e50, 2)).toEqual('-2e+50');
|
||||
it('should filter exponentially large numbers', function() {
|
||||
expect(number(1e50)).toEqual('1e+50');
|
||||
expect(number(-2e100)).toEqual('-2e+100');
|
||||
});
|
||||
|
||||
it('should ignore fraction sizes for large numbers', function() {
|
||||
expect(number(1e50, 2)).toEqual('1e+50');
|
||||
expect(number(-2e100, 5)).toEqual('-2e+100');
|
||||
});
|
||||
|
||||
it('should filter exponentially small numbers', function() {
|
||||
expect(number(1e-50, 0)).toEqual('0');
|
||||
expect(number(1e-6, 6)).toEqual('0.000001');
|
||||
expect(number(1e-7, 6)).toEqual('0.000000');
|
||||
|
||||
expect(number(-1e-50, 0)).toEqual('-0');
|
||||
expect(number(-1e-6, 6)).toEqual('-0.000001');
|
||||
expect(number(-1e-7, 6)).toEqual('-0.000000');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue