0

反正有没有除数的小数而不是整数。就像我有一个 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

4 回答 4

1

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

var number = 3.99;                
alert((number % 1) / 1.666667);         // result: 0.59399.....
alert(Math.floor((number % 1) * 60));   // result: 59
于 2013-07-18T04:22:22.987 回答
1

怎么样:

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

这没有考虑前导零等。

于 2013-07-18T04:54:19.740 回答
1

您得到分钟 - 3 和 0.99 分钟只需 0.99*60 即可获得秒数并将其附加到分钟返回“3”+“。”+“59”+ sMins

但不建议显示“.” 对于这种情况......

于 2013-07-18T04:20:08.177 回答
1

假设我们谈论的是 3.99 分钟,我会首先将它们转换为秒(我们真正关心的单位)。然后,您可以使用总秒数除以 60 并切掉任何余数,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));

小提琴

于 2013-07-18T04:20:11.747 回答