Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Problem der Beibehaltung von Dezimalzahlen in ganzen Zahlen

Ich hoffe, eine Zahl auf zwei Dezimalstellen zu beschränken, runden Sie sie ab
Ich habe versucht, die toFixed-Funktion zu verwenden, und ihr Inhalt ist korrekt, aber sie gibt eine Zeichenfolge zurück. Wenn ich beispielsweise Number(1.00) explizit konvertiere, wird sie zu 1.

Wie erhalte ich also eine Zahl mit zwei Dezimalstellen und der Rückgabetyp ist eine Zahl?

世界只因有你世界只因有你2730 Tage vor544

Antworte allen(5)Ich werde antworten

  • 淡淡烟草味

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

    窃以为:如果是用于页面展示,那么字符串也无所谓吧?如果是用于操作运算,就算是 1(不是1.00)也无所谓吧?

    Antwort
    0
  • 某草草

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

    1.00这种格式的只能用字符串保存,不可能用数字类型保存。

    无论你做什么处理,你要显示1.00这种东西只能用字符串。

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-19 10:14:54

    首先,toFixed方法本身是有bug的,其次,js中Number的结构中不包含精度,如果你需要包含精度的数字,自己写一个类就可以

    Antwort
    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

    Antwort
    0
  • 我想大声告诉你

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

    parseFloat(1.236.toFixed(2))

    Antwort
    0
  • StornierenAntwort