仅限小数部分

时间:2013-07-18 04:07:46

标签: javascript html

无论如何都要将数字的小数除以整数。就像我有一个3.99的数字我想要只将小数除以1.66667。我想这样做是因为3.99应该等于3分59秒,所以我宁愿把它读成3.59而不是3.99。

这是我现在必须返回时间的代码,顺便说一下它是从程序中返回一段时间,告诉你需要多长时间才能到期。但是用作完整的两位十进制数字格式。

function GetDiff(dt) { 
    sMins = " Min";
    sHours = " Hours";
    sDays = " Days";
    sSecs = " Secs";

    if (Math.abs(DateDiff("s", now, dt)) < 86400) {
        if (Math.abs(DateDiff("s", now, dt)) <= 3600) {
            return ((Math.floor(Math.abs(
                     DateDiff("s", now, dt) / 60) * 100) / 100
                     ).toFixed(2) + sMins);
        }
        else
        {
            return ((Math.floor(Math.abs(
                     DateDiff("s", now, dt) / 3600) * 100) / 100
                     ).toFixed(2) + sHours);
        }
    }
    else
    {
        return ((Math.floor(Math.abs(
                 DateDiff("s", now, dt) / 86400) * 100) / 100
                 ).toFixed(2) + sDays);
    }
}

4 个答案:

答案 0 :(得分:1)

你得到分钟--3和0.99分钟 只需0.99 * 60即可获得秒数 并将其附加到会议记录中 返回&#34; 3&#34; +&#34;。&#34; +&#34; 59&#34; + sMins

但不建议显示&#34;。&#34;对于这种情况....

答案 1 :(得分:1)

假设我们谈论的是3.99分钟,我会先将它们转换为秒(我们真正关心的单位)。然后,使用Math.floor可以将总秒数除以60并使用var decimalMinutes = 3.99; var totalSeconds = decimalMinutes * 60; var totalMinutes = Math.floor(totalSeconds / 60); var remainingSeconds = Math.floor(totalSeconds % 60); // Outputs 3:59 console.log(totalMinutes + ":" + remainingSeconds); // Float of 3.59 console.log(parseFloat(totalMinutes + "." + remainingSeconds)); // Float of 3.59 without type juggling console.log(totalMinutes + (remainingSeconds / 100)); 来消除剩余的余数,以获得分钟数。然后,您可以将总模数60的结果置于模数60以获得“剩余秒数”。

{{1}}

Fiddle

答案 2 :(得分:1)

您可以使用number % 1来获取数字的小数部分:

var number = 3.99;                
alert((number % 1) / 1.666667);         // result: 0.59399.....
alert(Math.floor((number % 1) * 60));   // result: 59

答案 3 :(得分:1)

怎么样:

var number = 3.99,
    percentOfSeconds = number - Math.floor(number), // result: .99;
    seconds = Math.floor(percentOfSeconds * 60);    // result 59

这不会考虑前导零等。