category: JavaScript
DATE : 2006/07/24 (Mon)
DATE : 2006/07/24 (Mon)
いつも、型制限の強い言語を使っているので、次のようなミスをしてしまいました orz
まず、次のように、特定の整数が入った変数(num)を2で割るとします。
var result = num / 2;
型制限の強い言語を使っていると、num に整数が入っている場合、2で割った結果も整数となるように期待してしまいます。例えば、Javaで int 型変数 num の値を2で割れば、結果も int 型となります。
int result = num / 2;
JavaScript は型制限のゆるい言語なので、num の中が整数であっても、2で割った結果が整数になるとは限りません。
むしろ JavaScript では、全ての数(Number 型)が浮動小数点数で扱われているので、結果は全て
例えば、次の計算の結果は、0.5になります。
var result = 1 / 2;
整数値を強制するには、Math.ceil 関数や Math.floor 関数を使います。簡単に言えば、前者は小数点第1位で切り上げ、後者は切り捨てで整数値に変換します。
例えば、Java の int 型同士の計算を JavaScript で行うには、次のようにします。
var result = Math.floor(num / 2);
PR
●この記事にコメントする
忍者ブログ [PR]