Au cours du processus de développement, nous rencontrons souvent des formats qui doivent être ajustés, comme le conserver les deux décimales après le point décimal, etc. La méthode est également assez courante, veuillez noter ce qui suit.
Le premier est d'utiliser Math.Round
var original = 28,453
1) // Round "Original" à deux décimales
var result = math.round (original * 100) / 100; // retourne 28.45
2) // rond "original" à 1 décimal
var result = math.round (original * 10) / 10; // retourne 28,5
Le deuxième type, JS1.5 ou supérieur peut utiliser Tofixed (x) pour spécifier le nombre pour intercepter la position x après le point décimal.
3) // rond "Original" à deux décimales
var result = original.tofixed (2); // retourne 28.45
4) // rond "Original" à 1 décimal
var result = original.tofixed (1); // retourne 28,5
Les deux méthodes ci-dessus sont les plus courantes, mais elles ne peuvent pas répondre à certaines exigences spéciales. Par exemple, en gardant les deux décimales après le point décimal. Si vous êtes à moins de deux chiffres, vous compenserez les zéros. À l'heure actuelle, il y a une troisième méthode.
Le troisième type est la fonction de conversion. Ce code vient d'un forum étranger.
La copie de code est la suivante:
Nombre de fonction (nombre, décimales) {
var newstring; // le nouveau numéro arrondi
décimales = nombre (décimales);
if (décimales <1) {
newstring = (math.round (nombre)). toString ();
} autre {
var numString = nombre.toString ();
if (numString.LastIndexof (".") == -1) {// s'il n'y a pas de point décimal
numstring + = "."; // en donne un à la fin
}
Var Coupoff = numString.LastIndexof (".") + décimales; // le point pour tronquer le nombre
var d1 = nombre (numString.substring (coupure, coupure + 1)); // la valeur de la dernière décimale que nous nous retrouverons avec
var d2 = nombre (numString.substring (coupure + 1, coupure + 2)); // la décimale suivante, après le dernier que nous voulons
si (d2> = 5) {// avons-nous besoin de rassembler du tout? Sinon, la chaîne sera simplement tronquée
if (d1 == 9 && coupure> 0) {// Si le dernier chiffre est 9, trouvez un nouveau point de coupure
while (coupure> 0 && (d1 == 9 || Isnan (d1))) {
if (d1! = ".") {
coupure - = 1;
d1 = nombre (numString.substring (coupure, coupure + 1));
} autre {
coupure - = 1;
}
}
}
d1 + = 1;
}
if (d1 == 10) {
numString = numString.SubString (0, numString.LastIndexof ("."));
var roundednum = nombre (numString) + 1;
newstring = roundnum.toString () + '.';
} autre {
newstring = numString.Substring (0, coupure) + d1.toString ();
}
}
if (Newsring.LastIndexof (".") == -1) {// refait ceci, à la nouvelle chaîne
Newstring + = ".";
}
var decs = (newsstring.substring (newstring.LastIndexof (".") + 1)). Longueur;
pour (var i = 0; i <décimales-decs; i ++) newstring + = "0";
// var newnumber = nombre (newstring); // faites-en un nombre si vous le souhaitez
Document.roundForm.oundedField.Value = Newstring; // Sortie le résultat du champ de formulaire (modifier pour vos fins)
}
5) // Round "Original" à deux décimales
var result = original.tofixed (2); // retourne 28.45
6) // rond "Original" à 1 décimal
var result = original.tofixed (1); // retourne 28,5
var original = 28,4
var result = original.tofixed (2); // Renvoie 28.40