logo 3con14 js cod
logo 3con14 js cod
  • Javascript
  • Conceptos
  • Ejemplos
  • Tips & Tricks
  • ► TAREAS
 
 
icon html5
icon css3
mlogo 3con14 js cod

  • Inicio
  • Tips & Tricks
  • Redondear números

Redondear números

El redondeo estándar de fracciones 0.5 se basa que entre 0 y 4 hay cinco números que redondean hacia abajo, mientras que entre 5 y 9 hay otros cinco que redondean arriba. Así las fracciones 0.5 siempre redondean arriba.

Se trata de observar el siguiente dígito después de los especificados para redondeo y si es igual o mayor que 5 redondeará arriba, en otro caso se quedará como está. Por ejemplo, redondear 1.025 a dos dígitos resultará 1.03.

Hemos de implementar una función que redondee las fracciones 0.5 siempre arriba. Podemos hacer que sea una regla equilibrada en positivos y negativos. Así por ejemplo 1.025 debe redondear a 1.03 y -1.025 a -1.03.

Redondeo [1]

Redondeo [1]



function redoNum(numero, digitos, sp = true) {
    // redondear núm. procedente de operación forzamos 3º argum. a true
    function toExp(numero, digitos) {
        let arr = numero.toString().split("e");
        let mantisa = arr[0], exponente = digitos;
        if (arr[1]) exponente = Number(arr[1]) + digitos;
        return Number(mantisa + "e" + exponente.toString());
    }
    let absNumero = Math.abs(numero);
    let signo = Math.sign(numero);
    if (sp) {
        let n = Math.floor(Math.log2(absNumero));
        let spacing = Math.pow(2, n) * Number.EPSILON;
        if (spacing < Math.pow(10, -digitos - 1)) {
            absNumero += spacing;
        }
    }
    let entero = Math.round(toExp(absNumero, digitos));
    return signo * toExp(entero, -digitos);
}
// n = 126.87483544247789
// redon(n,5)
// -> 126.87484

[1] wextensible

Redondeo [2]

Redondeo [2]



(function () {

    /**
     * Ajuste decimal de un número.
     *
     * @param	{String}	type	El tipo de ajuste.
     * @param	{Number}	value	El número.
     * @param	{Integer}	exp	El exponente(el logaritmo en base 10 del ajuste).
     * @returns	{Number}		El valor ajustado.
     */
    function decimalAdjust(type, value, exp) {
        // Si el exp es indefinido o cero...
        if (typeof exp === 'undefined' || +exp === 0) {
            return Math[type](value);
        }
        value = +value;
        exp = +exp;
        // Si el valor no es un número o el exp no es un entero...
        if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
            return NaN;
        }
        // Cambio
        value = value.toString().split('e');
        value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
        // Volver a cambiar
        value = value.toString().split('e');
        return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
    }

    // Redondeo decimal
    if (!Math.round10) {
        Math.round10 = function (value, exp) {
            return decimalAdjust('round', value, exp);
        };
    }
    // Redondeo hacia abajo
    if (!Math.floor10) {
        Math.floor10 = function (value, exp) {
            return decimalAdjust('floor', value, exp);
        };
    }
    // Redondeo hacia arriba
    if (!Math.ceil10) {
        Math.ceil10 = function (value, exp) {
            return decimalAdjust('ceil', value, exp);
        };
    }
})();
// n = 107.06737168141595
// Math.round10(n, -5)
// -> 107.06737

[2] MDN

  • Anterior
  • Siguiente

Tips and Tricks

  • Generar números aleatorios
  • Métodos para escribir con JS
  • Ordenamiento por burbuja
  • Pop-ups en Javascript
  • Redondear números
  • Validar números

Recursos

  • Visual Studio Code
  • Sublime Text
  • Prepros
  • CodePen .
  • Dillinger / MDP
Mas...

Mas...

codepen

uniwebsidad

overapi

can i use

w3schools

mdn

eloquent

Archivo .PDF del Libro

js arkaitz

Licencias ...

3con14─LAB 1998 - 2021
www.3con14.biz
(cc) Jesús Plaza M.
─ Otros Reconocimientos ─

Visitas ...

Hoy ... 7

Ayer ... 51

Week 209

Mes ... 58

TOTAL ... 159864

(cc) 3con14. Esta obra está bajo Licencia
Creative Commons Atribución-No Comercial-Compartir Igual 4.0

  • Javascript
  • Conceptos
  • Ejemplos
  • Tips & Tricks
  • ► TAREAS