Maison  >  Article  >  interface Web  >  Exemple d'arrondi toFixed en Javascript

Exemple d'arrondi toFixed en Javascript

黄舟
黄舟original
2017-08-22 11:16:571161parcourir

Cet article présente principalement la méthode d'arrondi toFixed en Javascript. L'éditeur pense qu'elle est plutôt bonne, je vais donc la partager avec vous maintenant et la donner comme référence. Suivons l'éditeur et jetons un œil.

ToFixed en JavaScript utilise la règle d'arrondi du banquier.

Arrondi du banquier : La méthode d'arrondi dite du banquier est essentiellement une méthode d'arrondi pair-pair (également connue sous le nom d'arrondi à cinq congés pair).

Pour faire simple : pensez à arrondir à cinq. Si le nombre après cinq n'est pas zéro, ajoutez un. Si le nombre après cinq est zéro, regardez impair ou pair. , il doit être jeté. Si le nombre avant cinq est impair, ajoutez-en un. Mais que toFixed soit introduit pour résoudre le problème du manque de précision dans les calculs à virgule flottante, ou qu'il utilise la méthode d'arrondi du banquier, tout cela vise à résoudre le problème de précision, mais il ne peut pas se passer de l'environnement binaire à virgule flottante, mais au moins ça nous aide. Nous avons trouvé le problème, ce qui nous a donné une solution.


 Number.prototype.toFixed = function(length)
    {
      var carry = 0; //存放进位标志
      var num,multiple; //num为原浮点数放大multiple倍后的数,multiple为10的length次方
      var str = this + ''; //将调用该方法的数字转为字符串
      var dot = str.indexOf("."); //找到小数点的位置
      if(str.substr(dot+length+1,1)>=5) carry=1; //找到要进行舍入的数的位置,手动判断是否大于等于5,满足条件进位标志置为1
      multiple = Math.pow(10,length); //设置浮点数要扩大的倍数
      num = Math.floor(this * multiple) + carry; //去掉舍入位后的所有数,然后加上我们的手动进位数
      var result = num/multiple + ''; //将进位后的整数再缩小为原浮点数
      /*
      * 处理进位后无小数
      */
      dot = result.indexOf(".");
      if(dot < 0){
        result += &#39;.&#39;;
        dot = result.indexOf(".");
      }
      /*
      * 处理多次进位
      */
      var len = result.length - (dot+1);
      if(len < length){
        for(var i = 0; i < length - len; i++){
          result += 0;
        }
      }
      return result;
    }

L'idée générale de cette méthode est de trouver d'abord le bit d'arrondi, de déterminer si la position est supérieure ou égale à 5, d'arrondir manuellement un chiffre si la condition est vraie, puis utilisez le paramètre taille pour Le nombre à virgule flottante d'origine est amplifié par le paramètre fois exponentielle de 10, puis tous les chiffres, y compris le bit d'arrondi, sont supprimés à l'aide du plancher, et la retenue est déterminée en fonction sur notre précédent transport manuel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn