Durante el proceso de desarrollo, a menudo encontramos formatos que necesitan ajustarse, como retener los dos lugares decimales después del punto decimal, etc. El método también es bastante común, tenga en cuenta lo siguiente.
El primero es usar matemáticas.
var original = 28.453
1) // redondea "original" a dos decimales
resultado var = math.round (original*100)/100; // Devuelve 28.45
2) // redondo "original" a 1 decimal
resultado var = math.round (original*10)/10; // Devuelve 28.5
El segundo tipo, JS1.5 o superior puede usar tofixed (x) para especificar el número para interceptar la posición X después del punto decimal.
3) // redondear "original" a dos decimales
resultado var = original.tofixed (2); // Devuelve 28.45
4) // redondo "original" a 1 decimal
resultado var = original.tofixed (1); // Devuelve 28.5
Los dos métodos anteriores son los más comunes, pero no pueden cumplir ciertos requisitos especiales. Por ejemplo, manteniendo los dos lugares decimales después del punto decimal. Si tiene menos de dos dígitos, compensará los ceros. En este momento, hay un tercer método.
El tercer tipo es la función de conversión. Este código proviene de un foro extranjero.
La copia del código es la siguiente:
function redondeNumber (número, decimales) {
Var Newstring; // El nuevo número redondeado
decimales = número (decimales);
if (decimals <1) {
Newstring = (Math.round (número)). ToString ();
} demás {
var numstring = number.ToString ();
if (numstring.lastindexof (".") == -1) {// Si no hay punto decimal
numstring += "."; // dale uno al final
}
var cotoff = numstring.lastIndexof (".") + decimals; // El punto en el que truncar el número
var d1 = número (numstring.substring (corte, corte+1)); // El valor del último lugar decimal que terminaremos
var d2 = número (numstring.substring (corte+1, corte+2))); // El siguiente decimal, después del último que queremos
if (d2> = 5) {// ¿Necesitamos redondear? Si no, la cadena solo se truncará
if (d1 == 9 && corte> 0) {// Si el último dígito es 9, encuentre un nuevo punto de corte
while (corte> 0 && (d1 == 9 || isnan (d1))) {
if (d1! = ".") {
Corte -= 1;
d1 = número (numstring.substring (corte, corte+1));
} demás {
Corte -= 1;
}
}
}
d1 += 1;
}
if (d1 == 10) {
numString = numString.substring (0, numstring.lastIndexOf ("."));
var redondeednum = número (numstring) + 1;
Newstring = RoundedNum.ToString () + '.';
} demás {
Newstring = numstring.substring (0, corte) + d1.ToString ();
}
}
if (newstring.lastindexof (".") == -1) {// Haz esto nuevamente, a la nueva cadena
Newstring += ".";
}
var decs = (Newstring.substring (Newstring.lastIndexof (".")+1)). Longitud;
para (var i = 0; i <decimals-decs; i ++) Newstring+= "0";
// var newNumber = Number (Newstring); // Hágalo un número si lo desea
document.roundform.roundedfield.value = newString; // emite el resultado al campo Formulario (cambie para sus propósitos)
}
5) // redondear "original" a dos decimales
resultado var = original.tofixed (2); // Devuelve 28.45
6) // Round "original" a 1 decimal
resultado var = original.tofixed (1); // Devuelve 28.5
var original = 28.4
resultado var = original.tofixed (2); // Devuelve 28.40