質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

431閲覧

秒->時分秒計算がうまくいかない

DaichiNakajima

総合スコア62

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/06/12 08:19

1kmのタイムを入力して、42.195kmのタイムを予想したいです。

1分0秒と入力すると、明らかに違う答えが出るのですが、どこが間違っているのでしょうか? Math.floorがうまくいっていない気がします。よろしくお願いいたします。

<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>テンプレート</title> <link href="../../_common/images/favicon.ico" rel="shortcut icon"> <link href="https://fonts.googleapis.com/css?family=M+PLUS+1p:400,500" rel="stylesheet"> <link href="../../_common/css/style.css" rel="stylesheet"> <style> #form{ display: flex; } </style> </head> <body> <header> <div class="container"> <h1>タイトル</h1> <h2>サブタイトル</h2> </div><!-- /.container --> </header> <main> <div class="container"> <section> <p>1kmのタイム</p> <form action="#" id="form"> <input type="number" id="min" name="inputMin" min="0" max="10"> <p>分</p> <input type="number" id="sec" name="inputSec" min="0" max="60"> <p>秒</p> <form action="#" id="form"> <input type="submit" value ="計算"> </form> <p>予測タイム</p> <span id = "output"></span> </section> </div><!-- /.container --> </main> <footer> <div class="container"> <p>JavaScript Samples</p> </div><!-- /.container --> </footer> <script> 'use strict' //ボタンを押した後の処理 document.getElementById('form').onsubmit = function (event){ event.preventDefault(); let min1 = document.getElementById('form').inputMin.value; let sec1 = document.getElementById('form').inputSec.value; let allSecond = (min1 * 60) + sec1; let timeOfFull = 42.195 * allSecond; let hour2 = Math.floor(timeOfFull/3600); let min2 = Math.floor((timeOfFull % 3600)/60); let sec2 = timeOfFull % 60; document.getElementById('output').textContent = `${hour2}時間${min2}分${sec2}秒`; } </script> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

数値計算すべき箇所が、文字列結合として処理されています。
誤:let allSecond = (min1 * 60) + sec1;
正:let allSecond = (Number(min1) * 60) + Number(sec1);

投稿2022/06/12 08:31

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DaichiNakajima

2022/06/12 09:19

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問