数値の種類
- 整数(integer)
小数を持たない数 - 浮動小数点(float)
小数を持つ数 - 倍制度浮動小数点(double)
ふつうの浮動小数点より精度が倍
二進数 : 1011 0101 0011 1010
八進数 : 132472
十六進数 : B53A
JavaScriptだと整数も倍制度浮動小数点もNumber型
(Bignum型はまだとっておく)
いろんなNumberメソッド
toFixed()
小数点以下を何桁にするかを括弧内で決めて丸める
どういう規則なのかはよくわからなかった
小数部が0になっても桁を出す
function num(x) {
return Number.parseFloat(x).toFixed(2) ;
}
console.log(num(123.446));
console.log(num(21.124));
console.log(num(0.555));
console.log(num(1.000));
console.log(num(1.555));
> "123.45"
> "21.12"
> "0.56"
> "1.00"
> "1.55"
Number()
文字の数字を数値の数字に変換したりする
let num = '1'; console.log(num + 1); > 11 //文字列型のnumに数値型の1を足そうとした時に型変換が起きて文字列結合になっている
let num = '1'; console.log(Number(num) + 1); > 2 //数値型に変換して数値演算
算術演算子
- 加算
+ - 減算
- - 乗算
* - 除算
/ - 余剰
% - べき乗
**
演算子の優先順位
50 + 10 / 8 + 2;
これの計算結果は53.25
なぜなら演算する順序が括弧内→乗除算→加減算の順だから
計算結果を6にしたければ(50 + 10) / (8 + 2);とする
常識
インクリメントとデクリメント
++と--
for文とか配列とかポインタでよくお世話になる
let num = 4; num1++; //4
???
どうやらブラウザが変数の値を返してからインクリメントしているらしい
変数の前に++を置くとインクリメントしてから値を返すようにできる
let num = 4; ++num1; //5
代入演算子
+=とか-=とか*=とか/=とか
左辺の値に右辺の値を(加|減|乗|除)算してから代入
比較演算子
===
左右の値が厳密に等しいか判定!==
左右の値が厳密に等しくないか判定<
左辺の値が右辺より小さいか判定>
左辺の値が右辺より大きいか判定<=
左辺の値が右辺の値以下か判定>=
左辺の値が右辺の値以上か判定
厳密な判定===と普通の判定==の違いはデータ型まで見るかどうか
1 === '1'はfalseになるけど1 == '1'はtrueになるこんなエラーを防ぐために厳密な判定を使うほうがいい
参考: https://developer.mozilla.org/ja/docs/Learn/JavaScript/First_steps/Math