シンプルな修正ユリウス日を求めるプログラムです。試しに2004年1月1日を求めると、誤った値「6640249」が出力されます。試行錯誤の結果、functionの中身、uに数値を代入する文(原文では改行されていません)で、dをMath.floor(d)に変えると正しい値「53005」が出力されました。この理由が全くわかりません。また、6640249はどのように計算された値でしょうか?ブラウザはIE6とLunascape2を使用です。
<html>
<head>
<title>myJulianday</title>
<script type="text/JavaScript">
<!--
function myFuncJulianday(){
y=document.form1.input1.value;
m=document.form1.input2.value;
d=document.form1.input3.value;
if(m==1){
m=13;
y=y-1;
}
if(m==2){
m=14;
y=y-1;
}
u=Math.floor(365.25*y)+Math.floor(y/400)-Math.floor(y/100)+Math.floor(30.59*(m-2))+d-678912;
document.form1.input4.value=u;
}
//-->
</script>
</head>
<body>
<form type="text" name="form1">
<input type="text" name="input1" size="10">年
<input type="text" name="input2" size="10">月
<input type="text" name="input3" size="10">日
<input type="button" size="20" value="ユリウス日を表示" onClick="myFuncJulianday()">
<input type="text" name="input4" size="10">
</form>
</body>
</html>
No.2ベストアンサー
- 回答日時:
No.1さんの言われるとおりです。
y,mは演算されているので数値と認識されています。
dは演算がないので文字型とみなされ、
途中結果=731916とd=1が連結されて
7319161-678912=6640249となったのですね。
試しにuの式の前にd=d-0を入れてみればきちんと動くはずです。
>>y,mは演算されているので数値と認識されています。dは演算がないので文字型とみなされて・・
なるほど!
本当にありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
TextBoxに半角数字以外を入れた...
-
テキストエリアに履歴を残したい
-
javascriptのちょっとした動作...
-
イベント発生順序
-
【Javascript】(テキストボッ...
-
perl cgi文字化け解消方法と[1...
-
Request.Form(key)の中身をクリ...
-
テキストボックスに入力した色...
-
タイマーについて教えて下さい!!
-
jQueryのdatepickerの日付が選...
-
ページ間で変数を保持したい
-
blurイベントについて
-
GetElementByIdがうまく取得で...
-
開いたサブウインドウから値を...
-
フォームの内容でリンク先URLの...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
テキストボックス入力を半角英...
-
【jQuery】input nameの文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
GetElementByIdがうまく取得で...
-
tabindexの取得
-
TextBoxに半角数字以外を入れた...
-
JavaScriptで作ったアプリが正...
-
プルダウンで選択された値を別...
-
HTMLファイル同士での値渡し
-
フォームの内容でリンク先URLの...
-
ページ間で変数を保持したい
-
テキストボックスに初期値で1...
-
javascriptのちょっとした動作...
-
入力するテキストエリアをボタ...
-
jQueryのdatepickerの日付が選...
-
JSPでonChangeを強制発行するに...
-
マイナスなら赤字で表示したい...
-
大文字か小文字かを判断する方法
-
VBscriptの配列変数をJavascrip...
-
一部Enter無効化の方法を教えて...
-
テキストエリアに履歴を残したい
-
フォーカスが外れた時の入力チ...
おすすめ情報