返回小数后多个数字的JavaScript代码



我有一个代码,我需要到达的数字返回小数点后的1或2位,而不是像现在这样的15位,这就是我所拥有的。

function GetDiff (dt) { 
    sMins = " Min";
    sHours = " Hrs";
    sDays = " Days";
    if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
        if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
            return (Math.abs (DateDiff ("n", now, dt)) + sMins);
        }
        else
        {
            return (Math.abs (DateDiff ("n", now, dt)/60) + sHours);
        }
    }
    else
    {
        return (Math.abs (DateDiff ("n", now, dt)/1440) + sDays);
    }
}

您可以使用.toFixed(2)将数字格式化为小数点后2位。

注意,.toFixed()返回一个字符串,因此如果您想再次将结果作为数字处理,则需要parseFloat()

function GetDiff (dt) { 
    sMins = " Min";
    sHours = " Hrs";
    sDays = " Days";
    if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
        if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
            return (Math.abs (DateDiff ("n", now, dt)) + sMins).toFixed(2);
        }
        else
        {
            return (Math.abs (DateDiff ("n", now, dt)/60) + sHours).toFixed(2);
        }
    }
    else
    {
        return (Math.abs (DateDiff ("n", now, dt)/1440) + sDays).toFixed(2);
    }
}
var num = 5.56789;
var n=num.toFixed(2);

所以基本上你需要四舍五入值:

function GetDiff (dt) { 
    sMins = " Min";
    sHours = " Hrs";
    sDays = " Days";
    if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
        if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
            return (Math.abs (DateDiff ("n", now, dt)) + sMins).toFixed(2);
        }
        else
        {
            return (Math.abs (DateDiff ("n", now, dt)/60) + sHours).toFixed(2);
        }
    }
    else
    {
        return (Math.abs (DateDiff ("n", now, dt)/1440) + sDays).toFixed(2);
    }
}

来源:https://stackoverflow.com/a/8927144/821056

http://www.mredkj.com/javascript/numberFormat.html

以下是如何将数字四舍五入到两位小数

var original=28.453
var result=Math.round(original*100)/100  //returns 28.45

取自:http://www.javascriptkit.com/javatutors/round.shtml

我想通了!!现在,每当我输入.tofixed时,它都不起作用,但正如我所说,这是脚本中稍后代码的函数,所以idk。

                    function GetDiff (dt) { 
        sMins = " Min";
    sHours = " Hrs";
    sDays = " Days";
    if ( Math.abs (DateDiff ("n", now, dt)) < 1440 ) {
        if ( Math.abs (DateDiff ("n", now, dt)) <= 60 ) {
            return (Math.abs (DateDiff ("n", now, dt)) + sMins);
        }
        else
        {
            return ((Math.floor(Math.abs (DateDiff ("n", now, dt)/60)*10)/10) + sHours);
        }
    }
    else
    {
            return ((Math.floor(Math.abs (DateDiff ("n", now, dt)/1440)*10)/10) + sDays);
    }
}

使用DecimalFormatter:

double number = 0.9999999999999;
DecimalFormat numberFormat = new DecimalFormat("#.00");
System.out.println(numberFormat.format(number));

会给你"0.99"。你可以在右边加或减0,得到或多或少的小数。

或者使用右侧的"#"使附加数字可选,如中的#。##(0.30)将使尾部0下降为(0.3)。

最新更新