Posterior a indagar en varios repositorios y páginas webs al concluir dimos con la resolución que te compartimos a continuación.
Solución:
Podría simplemente multiplicar por 1 para convertirlo a true valor.
(i
Como se señaló en los comentarios anteriores, la solución se romperá debido al formato de configuración regional por filtro de número angular. Si necesita el formato y el redondeo de la configuración regional, puede crear un filtro de extensión que debajo use number filter
y $locale
Servicio.
.filter('numberEx', ['numberFilter', '$locale',
function(number, $locale)
var formats = $locale.NUMBER_FORMATS;
return function(input, fractionSize)
//Get formatted value
var formattedValue = number(input, fractionSize);
//get the decimalSepPosition
var decimalIdx = formattedValue.indexOf(formats.DECIMAL_SEP);
//If no decimal just return
if (decimalIdx == -1) return formattedValue;
var whole = formattedValue.substring(0, decimalIdx);
var decimal = (Number(formattedValue.substring(decimalIdx)) ;
]);
Y usarlo como:
numberEx:2
Manifestación
angular.module('app', []).controller('ctrl', function($scope)
$scope.myList = [0, 10000.56, 0.5, 0.6666666, -1000.23123, 1, 1002, 2.5, 30.5, 22];
).filter('numberEx', ['numberFilter', '$locale',
function(number, $locale)
var formats = $locale.NUMBER_FORMATS;
return function(input, fractionSize)
//Get formatted value
var formattedValue = number(input, fractionSize);
//get the decimalSepPosition
var decimalIdx = formattedValue.indexOf(formats.DECIMAL_SEP);
//If no decimal just return
if (decimalIdx == -1) return formattedValue;
var whole = formattedValue.substring(0, decimalIdx);
var decimal = (Number(formattedValue.substring(decimalIdx)) ;
]);
numberEx:2
Yo lo haría así:
formatNumber(i)
y en tu controlador:
$scope.formatNumber = function(i)
return Math.round(i * 100)/100;
Tienes la posibilidad compartir este escrito si te valió la pena.
¡Haz clic para puntuar esta entrada!
(Votos: 3 Promedio: 4.7)