Index |
HOME > プログラムTOP > JavaScript |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
数値処理いろいろ
JavaScript の実用的なTips集です。ここでは、数値の処理に関するTipsを集めてみました。主に、Mathオブジェクトを使った数学処理を扱っています。Mathオブジェクトは、数学処理を行うために用意されたオブジェクトです。
sasaraan programming ![]() Exposition ■小数と絶対値
Math オブジェクトには、小数を処理するメソッドがいくつか用意されています。四捨五入する場合は round、切り上げて整数にする場合は ceil、切り捨てて整数にする場合は floor を使用します。また、絶対値を求めるには abs メソッドを利用します。
// JavaScriptソース
// 小数の処理と絶対値
// ... 引数 mode : 0=四捨五入 / 1=切り上げ / 2=切り捨て / 3=絶対値
function GetValue(mode) {
var n = document.Form2.Text2a.value;
if (n=="" || isNaN(n)) {
alert("数字ではありません。");
} else {
if (mode == 0) n = Math.round(n);
else if (mode==1) n = Math.ceil(n);
else if (mode==2) n = Math.floor(n);
else if (mode==3) n = Math.abs(n);
document.Form2.Text2b.value = n;
}
}
<!-- HTMLソース -->
<form name="Form2" style="margin:1ex">
↓値を入力してボタンを押してください。結果が表示されます。<br>
<input type="text" name="Text2a" size="16" value="5.56"/>
<input type="button" value="四捨五入" onclick="GetValue(0)"/>
<input type="button" value="切り上げ" onclick="GetValue(1)"/>
<input type="button" value="切り捨て" onclick="GetValue(2)"/>
<input type="button" value="絶対値" onclick="GetValue(3)"/>
<input type="text" name="Text2b" size="16"/>
</form>
また、数字の表示をする際、桁数を指定することができます。小数桁を指定したい時は toFixed メソッド、総桁数を指定したい場合は toPrecision メソッドで指定します。いずれもグローバルメソッドとして定義されています。ただし、toPrecision メソッドで、数値が小数のみの時は、小数部分の桁数となります。(使用例は次節「乱数」に掲載)
■乱数
乱数は、Math オブジェクトの random メソッドによって求めることができます。このメソッドは、 通常は0以上1未満(ブラウザによっては1を含む)の値を返します。この時、値は小数を含みますので注意が必要です。
// JavaScriptソース
// 乱数の取得と表示
function GetRand(mode) {
var i = 0;
var s = "";
// 乱数を100個生成
while (i++ < 100) {
var n = Math.random();
if (mode == 2) {
n = n.toFixed(5); // 小数桁5に整形
} else if (mode == 3) {
n = (n*100).toPrecision(6); // 総桁数6に整形
} else if (mode == 4) {
n = Math.floor(n *100); // 0以上100未満
if (n == 100) n = 99; // "1"対策
if (n < 10) n = "0" + n; // 一桁の場合は0をつける
} else if (mode == 5) {
n = Math.floor(n * 21) + 10; // 10以上30以下
if (n == 31) n = 30; // "1"対策
}
s += n + " ";
}
document.Form3.Text3.value = s;
}
<!-- HTMLソース -->
<form name="Form3" action="" style="margin:1ex">
<input type="button" value="乱数1" onclick="GetRand(1)"><br>
<input type="button" value="乱数2" onclick="GetRand(2)"><br>
<input type="button" value="乱数3" onclick="GetRand(3)"><br>
<input type="button" value="乱数4" onclick="GetRand(4)"><br>
<input type="button" value="乱数5" onclick="GetRand(5)"><br>
<textarea name="Text3" rows="4" cols="66" style="font-size:90%;"></textarea>
</form>
■三角関数と円周率![]() 左図は三角関数の概念図です。 Math オブジェクトには三角関数に対応したメソッドが多数用意されています。基本的なものは以下の三つです
また、円周率(π)は、以下のように、定数プロパティとして用意されています。
// JavaScriptソース
// 三角関数の値を求めてテキストに表示
// ... 引数 mode : 0=sin / 1=cos / 2=tan
function GetTrig(mode) {
var n = document.Form4.Text4a.value;
if (isNaN(n)) {
alert("数値ではありません。");
} else {
var t;
n *= Math.PI / 180; // 度をラジアンに変換
if (mode == 1) t = Math.sin(n);
else if (mode == 2) t = Math.cos(n);
else if (mode == 3) t = Math.tan(n);
document.Form4.Text4b.value = t.toPrecision(6); // 総桁数6に整形
}
}
<!-- HTMLソース -->
<form name="Form4" action="" style="margin:1ex">
↓度数を入力してボタンを押してください。結果が表示されます。<br>
<input type="text" name="Text4a" size="12" value="30"> 度の
<input type="button" value="sin" onclick="GetTrig(1)">
<input type="button" value="cos" onclick="GetTrig(2)">
<input type="button" value="tan" onclick="GetTrig(3)">
は <input type="text" name="Text4b" size="16">
</form>
上記の他に、逆三角関数を求めるメソッドも用意されています。
■その他の数学処理
上記以外にも、Math オブジェクトには、下記のような数値処理のメソッドがあります。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
www.sasaraan.net |
(c) morijoh |