🧮
dart.mathを使って数を操る(対数・絶対値・小数点以下の固定など)
何でそんな変換が要るのか
「宇宙の誕生から終わりなき「今」まで」をキャッチコピーに
総合年表を作っている。
年表といったら、ふつう事象が単にずらっと並んでいる、というイメージだろうが、
この年表では時間軸をちゃんと設定して、距離を取った表示をする。
それも最終的には地図上、地球儀上にプロットすることで、
空間的距離も表現するぞ〜、
しかもその空間内を歩き回れるようにするぞ〜
と、もはや妄想の域に達している。
それらを実現するために、いわゆる年表を構成する年月日を操作している。
まずは
import 'dart:math' as math;
なんでas mathにしているかはlogのところでわかります。
doubleで計算して、四捨五入でintにする。
('計算式').round()
絶対値を取る
('正負の値').abs()
対数を取る
1日に何件も「事象」が発生する21世紀と、億年単位の過去を同一軸では表しきれないときに使う。
math.log('正の値')
mathなしでlogだけ書くと、どうやら履歴のほうのlog扱いになるらしく、
それはStringだ、とか、計算式の中に入れるな、とかいろいろ言われる。
mathだと明示するために、importのところでas mathをつけている。
小数点以下4桁で固定する
double.parse(('たらたら長い小数').toStringAsFixed(4))
どうしてこんなにめんどうくさいのかわからないが、
まず小数点以下4桁で固定しているのが後半、なぜかString。
それをdoubleに戻しているのが前半。
ふしぎ〜。
Discussion