无论如何都要将数字的小数除以整数。就像我有一个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);
}
}
答案 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}}
答案 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
这不会考虑前导零等。