Maison > interface Web > js tutoriel > le corps du texte

Comment arrondir les valeurs js

一个新手
Libérer: 2017-09-08 13:23:34
original
2906 Les gens l'ont consulté

La méthode 1.toFixed() peut arrondir le nombre à un nombre avec des décimales spécifiées.

NumberObject.toFixed(num)
Copier après la connexion

num doit être écrit, en précisant le nombre de décimales, qui est une valeur comprise entre 0 et 20 , notamment 0 et 20, certaines implémentations peuvent prendre en charge une plage de valeurs plus large. Si ce paramètre est omis, 0 sera utilisé à la place.

当num超过20的时候,js会出错,这东西好像只能传一个数字进去,字符串会爆不是一个方法
Copier après la connexion

Bug dans la méthode :

<span style="color:#33cc00">Number(13.35).toFixed(1); //13.3 <br>Number(0.055).toFixed(1); //0.1<br>原因:<span style="font-size:13.3333px; font-family:PingFangSC-Regular,Verdana,Arial,微软雅黑,宋体">原生toFixed(x)截取小数的时候会有误差</span><br>//如果要修改这个缺陷,可以把js中的number类型的tofixed方法重写。</span>
Copier après la connexion

2.Math.round() La méthode arrondit un nombre à l’entier le plus proche.

Math.round(x)
Copier après la connexion

x est la valeur qui doit être calculée. La méthode renvoie l'entier le plus proche de l'expression numérique donnée.

Bogues existants dans la méthode

<span style="background-color:rgb(255,255,255)"><span style="color:#009900">Math.round(num * Math.pow(10, 2)) / Math.pow(10, 2);  //num是待处理数字</span></span><span style="color:rgb(0,153,0); font-size:13.3333px; font-family:PingFangSC-Regular,Verdana,Arial,微软雅黑,宋体; background-color:rgb(255,255,255)">Math.pow(10, 2)=100</span><span style="background-color:rgb(255,255,255)"><span style="color:#009900"><br>当num = 10.10500时,计算上述表达式可得10.11。(正常)<br>当num = "10.50000"时(注意这里是字符串),计算上述表达式可得10.5。(damn it,小数点后位数不对!)</span></span>
Copier après la connexion
原因:当num是字符串,进行乘法操作时,进行了类型转换,后缀零被丢弃了,导致位数不足,这个时候我们就应该进行补0
Copier après la connexion

Solution :

<span style="background-color:rgb(255,255,255)"><span style="color:#003300">var iTofixed =function(num,fractionDigits) {<br> return (Math.round(num*Math.pow(10,fractionDigits))/Math.pow(10,fractionDigits)+Math.pow(10,-(fractionDigits+1))).toString().slice(0, -1)<br>};<br>iTofixed('13.5000',3);<br>//"13.500"</span></span>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal