忍者ブログ
[118] [117] [116] [115] [114] [113] [112] [111] [110] [109] [108]

DATE : 2017/07/24 (Mon)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


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
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
06 2017/07 08
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
06 2017/07 08
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)