Javascript 将十进制的周数转换为分数
我正在努力解决这个基于数学的问题 我有两个日期之间的秒差,我想把秒数转换成分数。我的小数工作得很好,但我正在努力找出如何将这个值转换成分数 因此,例如,两个时间戳之间的周数差为4.285714285714286。我想将其表示为Javascript 将十进制的周数转换为分数,javascript,math,decimal,fractions,Javascript,Math,Decimal,Fractions,我正在努力解决这个基于数学的问题 我有两个日期之间的秒差,我想把秒数转换成分数。我的小数工作得很好,但我正在努力找出如何将这个值转换成分数 因此,例如,两个时间戳之间的周数差为4.285714285714286。我想将其表示为4 2/7 有人能提出用JavaScript实现这一点的最有效方法吗?也许我不理解你的问题,所以这可能是一个非常幼稚的答案。如果是,就这么说吧 var a = new Date(2011, 12, 31), b = new Date(2011, 12, 1),
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
);
也许我不明白你的问题,所以这可能是一个非常天真的答案。如果是,就这么说吧
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的东西。如果分数底部的数字可以改变,那就更难了…任意分数还是仅仅七分之一?它们总是七分之一。你想要的总是几周几天吗?如果是这样的话,你可以只取周数的小数部分,乘以7,然后四舍五入。这假设你总是想要超过7的东西。如果分数底部的数字可以改变,那就更难了……任意分数还是仅仅七分之一?它们永远都是七分之一。@BenM以何种方式为假。“你必须更具描述性一点。”本姆在哪方面是错的。你必须更具描述性。