int / double
整数と小数と
機械にとっては、どんなデータも 0
と 1
の数列にしか見えない。
もちろん人間にとってはやりづらいので、できる限り人間がいつもしている表現を扱いたいんだ。
そこで 0
と 1
だけのデータを 型 に閉じ込めて、値の埋め込みや足し算や掛け算を簡単にできるようにしたの。
偉大な発明だわー。
今回はたくさんある型の中でもよく使う、
int
(整数 - integer の略)double
(倍精度浮動小数点数 - double floating-point の略)
を紹介するよ。
ちなみに、(静的な) 型があると記述ミスによる不具合「バグ」を防ぐ働きもある。意外と大きいメリット。
int
整数 を扱う型。これが出てこないプログラムはそうそう無い。
これがこの型のリテラル達。
見やすいように自由に '
を入れて桁区切りできる (数そのものには影響しない)。他にも (16 進数とかの) 記法があるけど、多いのでまたの機会に。
0;
1;
502;
25701;
-2149;
20'200'621;
使うときはこんな感じになる。
int price = 500;
int discout = 80;
price = price - discount;
double
小数と、あといくつかの数 (無限大とか) を扱う型。小数が必要な計算に使う。
この型のリテラル達。小数とだいたい同じ。小数点の左側や右側が全部 0
のときは省略できる。
3.0;
0.740;
5.; // => 5.0
.2; // => 0.2
他にも (16 進数の) 記法があるけど、そっちはまず使わない。
より小さい・大きい数を書くために指数表記 (× 10 の n 乗で書いて 0 を減らす) もある。
3000000.; // 0 何個か見づらい
3e6; // 3 × 10 の 6 乗
3e+6; // 上と同じ
.005; // 0 何個か(ry
5e-3; // 5 × 10 の -3 乗
使うときはこんな感じになる。これも普通に四則演算できる (剰余算を除いて)。
double ratio = 1.6;
double player_speed_x = 2.0;
player_speed_x = player_speed_x * ratio;
2.0 / 0.0; // => inf。エラーにならない代わりに無限大 (infinity) になる
4.0 % .3; // コンパイルできない。double の剰余はできない