2013年4月20日土曜日

[mmf2]小数点が出ちゃう計算をしたい

問題発生編


こんなんをやりたかった。

((80/320)*35)+45

本当の答えはこう。

53.75

だけど、mmf2で計算させようとすると、馬鹿になってこうなる。

45


うはwwwww


これはここのwikiにも書いてある。
http://wikiwiki.jp/mmf2/?%BB%C5%CD%CD%C5%F9%BB%A8%C2%BF%BE%F0%CA%F3#qa5bdc5a


解決編


へー。
どちらかの数字に1.0を掛ければいいのか。
なのでこうしたら直った。

((80*1.0/320)*35)+45
   ↑一番最初の掛け算のところがいいみたい。


なんでこんな計算しているかというと、2つのオブジェクトの座標から計算して
結果を使おうとしてたら、どうやっても45しか返ってこねぇ。

なんでだろう?と思って、その時に出ていた値をダミーで出してみて、
さっきの計算式になってたわけです。

なんかおかしい数字になってない?と思ったら、一旦オブジェクトからX座標を取得してぇ
みたいなのは後回しにして、数字だけで期待値通りの数字が取れるか、まずはやったほうがいいですね。

問題再勃発編!!


さて、こうして 80 と 320 のところに、本来やりたかったオブジェクトの座標やらの式を入れ込んだ。

返ってきた結果が

天文学的数字wwwwwwwwww
なんでこうなんだよ!!!wwww

80  のところに入れたかった式だけにして表示しても、問題ない
320 のところに入れたかった式だけにして表示しても、問題ない

意味がわからん・・・。

本当の本当の解決編

もうね。何やっても馬鹿になっちゃう。

一つ一つが正常な数字なのに、一度に計算したら馬鹿になってしまう!!

そんな時は、一つ一つの計算結果を、どこかの変数に格納してしまおう。
んで、さっきの

((80*1.0/320)*35)+45

こいつに代入してやる。



((変数A*1.0/変数B)*35)+45

こうしたら、今度こそ解決できた。

あーーーー!!
これに1時間かけました。チャンチャン。

0 件のコメント:

コメントを投稿