Saltar al contenido

Cómo redondear en Javascript/Angular JS, pero eliminar dígitos insignificantes

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *