Un problema al agregar operaciones en js, pero ocurre un problema después de agregar.
Cuando los decimales de JavaScript realizan cuatro operaciones aritméticas, se perderá la precisión
Entonces necesitas escribir una función para manejar esta situación, como las siguientes funciones útiles:
//Nota: El resultado de la suma de JavaScript tendrá errores, que serán más obvios al sumar dos números de punto flotante. Esta función devuelve un resultado de suma más preciso.
//Llamada: accAdd(arg1, arg2)
//Valor de retorno: el resultado exacto de arg1 más arg2
función accAdd(arg1, arg2) {
var r1,
r2,
m;
prueba {
r1 = arg1.toString ().split(".")[1].length
} catch(e) {
r1 = 0
}
prueba {
r2 = arg2.toString().split(".")[1].length
} catch(e) {
r2 = 0
}
m = Math.pow(10, Math.max(r1, r2))
retorno (arg1 * m arg2 * m ) / m
}
//Agregue un método de adición al tipo de Número para que sea más conveniente llamar.
Número.prototipo.add = función(arg) {
return accAdd(arg, this);
}
// Nota: El resultado de la suma de JavaScript tendrá errores, que serán más obvios al sumar dos números de punto flotante. Esta función devuelve un resultado de suma más preciso.
//Llamada: accAdd(arg1, arg2)
//Valor de retorno: el resultado exacto de arg1 más arg2
función accAdd(arg1, arg2) {
var r1,
r2,
m;
prueba {
r1 = arg1.toString ().split(".")[1].length
} catch(e) {
r1 = 0
}
prueba {
r2 = arg2.toString().split(".")[1].length
} catch(e) {
r2 = 0
}
m = Math.pow(10, Math.max(r1, r2))
retorno (arg1 * m arg2 * m ) / m
}
//Agregue un método add al tipo Número para que sea más conveniente llamar.
Número.prototype.add = function(arg) {
return accAdd(arg, this);
}
Resta
Código Js
[código]
// Explicación: El resultado de la resta de JavaScript tendrá errores, que serán más obvios al sumar dos números de punto flotante. Esta función devuelve un resultado de resta más preciso.
//Llamada: accSub(arg1, arg2)
//Valor de retorno: el resultado exacto de arg1 menos arg2
función accSub(arg1, arg2) {
return accAdd(arg1, -arg2);
}
//Agregue un submétodo al tipo Número para que sea más conveniente llamar.
Número.prototipo.sub = función(arg) {
return accSub(this, arg);
}
// Nota: El resultado de la resta de JavaScript tendrá errores, que serán más obvios al sumar dos números de punto flotante. Esta función devuelve un resultado de resta más preciso.
//Llamada: accSub(arg1, arg2)
//Valor de retorno: el resultado exacto de arg1 menos arg2
función accSub(arg1, arg2) {
return accAdd(arg1, -arg2);
}