Javascriptを勉強しています。
ただ単にテキスト通りにやるだけより、自分で何かを考えて実際にプログラムを書いたほうが学びも早いだろうということで今回つくってみました。
題して
フルマラソンのターゲットタイムを元に1kmあたりのペースを把握するためのプログラム
実際に書いたプログラムはこちら
const target = (hour, minutes) => {
return Math.round((hour*60*60 + minutes*60)/42.195)
};
const result_min = Math.round(target(3,0)/60);
const result_sec = -1+Math.round(60*((target(3,0)
console.log(`
上から説明していきます。
- targetを定義。引数はhour(時間)、minutes(分)。3時間なら3,0。2時間30分なら2,30というふうになる。
- 実行することで1kmあたりのペースを”秒”で戻すようにします。小数点にならないようMath.roundで四捨五入します。
- result_minに2で出した数字を分に変換。これもMath.roundで四捨五入
- result_secに2で出した数字を秒に変換。これも四捨五入。-1をしているのは四捨五入することで1秒プラスされてしまうことがあったため
- console.logで出力します。
書いていて感じたのですが、Math.roundによる四捨五入だと問題が生じることがあるので、小数点以下切り捨てをしたほうが良いですね。そんなときはMath.floorというのがあるようです。