1
我可以用这个基于数学的查询来挣扎。将十进制数转换为分数
我有两个日期之间的秒差,并希望将秒数转换为分数。我的小数点运行良好,但我正在努力弄清楚如何将该值转换为小数。
因此,例如,两个时间戳之间的星期差数是4.285714285714286。我想将其表示为4 2/7
。
任何人都可以建议最有效的方式来实现这个在JavaScript中吗?
我可以用这个基于数学的查询来挣扎。将十进制数转换为分数
我有两个日期之间的秒差,并希望将秒数转换为分数。我的小数点运行良好,但我正在努力弄清楚如何将该值转换为小数。
因此,例如,两个时间戳之间的星期差数是4.285714285714286。我想将其表示为4 2/7
。
任何人都可以建议最有效的方式来实现这个在JavaScript中吗?
也许我不明白你的问题,所以这可能是一个非常天真的答案。如果是的话,就这么说。
var
a = new Date(2011, 12, 31),
b = new Date(2011, 12, 1),
weekMilliSeconds = 7 * 24 * 60 * 60 * 1000,
fraction = (a - b)/weekMilliSeconds,
weeks = Math.floor(fraction),
days = Math.round((fraction - weeks) * 7);
console.log(
weeks + ' ' + days + '/7' // => 4 2/7
);
它总是会有效的几周和几天,你想要的?如果是这样,那么你可以采取周数的小数部分乘以7和四舍五入。这假定你总是想要超过7的东西。如果你的数字在分数的底部可以改变,那就更困难了...... – Chris 2011-12-15 12:29:43
Arbritrary分数还是只是第七? – hugomg 2011-12-15 12:30:28