【发布时间】:2021-10-20 17:28:17
【问题描述】:
我知道在 JavaScript 中肯定有更好的方法来做到这一点,但我只是在做一些我知道的事情。我正在做另一个 Code Wars 挑战,我应该得到 12:34:55 时似乎得到了 12:34:56。
对于挑战,函数以仅几秒的格式输入,例如。 86399,然后输出应该是人类可读的格式。
我真的不知道这里出了什么问题,我觉得这与 Math.trunc() 有关,因为我的数学是有道理的。
我会解释数学,但它在代码中很容易解释。唯一的问题似乎是秒数。
function humanReadable(seconds) {
const hour = Math.trunc((seconds / 60) / 60);
const mins = Math.trunc((((seconds / 60) / 60) - hour) * 60);
const secs = Math.trunc(((seconds / 60) - Math.trunc(seconds / 60)) * 60);
return `${hour < 10 ? `0${hour}` : hour}:${mins < 10 ? `0${mins}` : mins}:${secs < 10 ? `0${secs}` : secs}`
}
【问题讨论】:
-
你应该只截断除法的结果,而不是在相乘之后。
-
肯定有更好的方法,你应该使用模数来获得每次除法后的余数。
-
24 小时有 86400 秒 - 我希望结果是 23:59:59。你得到的原始价值是什么?
标签: javascript math truncate