制作日記

こういうの作った方が、逃げにくいじゃない

整数乗

**のことなんだけどさ

これはオペランドに小数を指定しているか否か等で戻り値の型が変わっている
記述上は同じように見えるけど異なる関数を利用しているってことなんじゃないかと

試してみたところ、第2オペランドに小数や負の整数を指定した場合問題なく動作したっぽい
つまり、整数になるような演算であってもオペランドを工夫することで戻り値がintではなくfloatの関数を使わせれば結果は狂わない
どうすりゃいいかってーと、オペランドに小数を指定してやれば良い
MUGENは数値の型にうるさくて、22/10の演算結果はintで2だが、22.0/10、22/10.0とかだとfloatで2.200…となる
小数点以下まで求めたい場合、整数をわざと小数点以下まで書くことでそう明示する必要があるわけ
そして整数を小数点以下まで書けば、演算結果が整数であってもMUGENは小数点以下まで求める
これはつまり、**だと戻り値が整数ではない正確な方の関数を利用してくれるってこと

てなわけで、bit演算とかで一々1024*256云々やらなくてもceil(2.0**x)もしくはceil(2.0**x.0)で事足りる

コメントの投稿

非公開コメント

プロフィール

Author:drab
霊夢改変キャラ
「12 3 ! {V} [_]」
公開中
L霊夢でもl_reimuでも好きなように読んでください

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク