MP表示の丸め処理
MPの残量は、内部的には端数でもっているはずだけれど、表示上は常に整数値になっている。ここで使われる丸め処理が何なのか調べてみる。
実験
最大MPを決める計算式は過去に調べた。
最大MP(昨日の分析) - お茶の国 プリ日記 ロードス島 調査兵団
この結果から「基本最大MP+?%」が0なら、最大MPは内部的にも整数値になる。
Lv=85、精神 13だと基本最大MPは
(65+2*85)*(1+0.05*13)=387.75 の四捨五入で388となる。
ここから、基本最大MP+0%で、最大MP+446だと、388+446=834となる。
なので、最大MPは計算上834で、実際にも834になっていた。この値は、端数なしでぴったり834。
ここで、MP消費減30%でファストキュアLv24を打ってみる。
デフォルトのMP消費は19なので、実際の消費量は、19*0.7=13.3。
ファストキュアを3回打ったときのMPの変化がこちら。
834 → 820 → 807 → 794
MPの減少量だけ見ると, 14, 13, 13となっている。つまり、内部的には13.3ずつ減っているはずと考えられる。そして、そう考えて、内部値と表示値を比べると
834 | 820 | 807 | 794 |
834 | 820.7 | 807.4 | 794.1 |
となり、MP表示の丸め処理は切り捨てと分かる。
さらに、最大MPの計算式が四捨五入だったことを考えると、最大MPは常に端数なしで整数値なことも分かる。
結論
まとめると
MPが最大のときは端数なしで常に整数値
MPが最大でないときは、内部的には端数を持っており、切り捨てた値が表示される。
という事が分かる。このことが分かると、おまけ回復の量を測定するのがとても簡単になるのだけれど、その辺の話はまた後日。