Maison  >  Questions et réponses  >  le corps du texte

javascript - problème de préservation des décimales dans les nombres entiers

J'espère garder un nombre à deux décimales. S'il y a des décimales, arrondissez-les. Sinon, remplissez 0.
Par exemple
1=》1.00
1.234=》1.23
1.256=》1.26

.

J'ai essayé d'utiliser la fonction toFixed et son contenu est correct, mais elle renvoie une chaîne. Par exemple, 1,00 est une chaîne Lorsque je convertis explicitement Number(1.00), elle devient 1.

Alors, comment puis-je obtenir un nombre avec deux décimales et le type de retour est un nombre ?

世界只因有你世界只因有你2734 Il y a quelques jours551

répondre à tous(5)je répondrai

  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:14:54

    Je suppose que s'il est utilisé pour l'affichage de la page, alors les chaînes n'ont pas d'importance, n'est-ce pas ? S'il est utilisé pour le fonctionnement, cela n'a pas d'importance même s'il vaut 1 (et non 1,00), n'est-ce pas ?

    répondre
    0
  • 某草草

    某草草2017-05-19 10:14:54

    1.00 Ce format ne peut être enregistré que sous forme de chaîne et ne peut pas être enregistré sous forme numérique.

    Peu importe ce que vous faites, si vous souhaitez afficher quelque chose comme 1,00, vous ne pouvez utiliser que des chaînes.

    répondre
    0
  • ringa_lee

    ringa_lee2017-05-19 10:14:54

    Tout d'abord, la méthode toFixed elle-même est boguée. Deuxièmement, la structure Number en js ne contient pas de précision. Si vous avez besoin d'un nombre contenant de la précision, écrivez simplement une classe vous-même.

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:14:54

    var num=1.256;
    Math.floor(Math.round(num*100))/100;
    
    可以封装成方法:
    function unitNormalization(arr,digit){
            /*单位规整*/
            var digit=digit||0;
            var prence=Math.pow(10,digit);
            if(Array.isArray(arr)){
                var backArr=[];
                for(var i=0;i<arr.length;i++){
                    backArr.push(Math.rou(Math.round(arr[i]*prence))/prence);
                }
                return backArr;
            }else{
                var num=Math.floor(Math.round(arr*prence))/prence;
                return num
            }
        }
    
    unitNormalization(1.253,2)//1.25
    unitNormalization(1.257,2)//1.26

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:14:54

    parseFloat(1.236.toFixed(2))

    répondre
    0
  • Annulerrépondre