HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0312
にゃんちゃん「0.000000」と「-0.000000」の違い2解決


にゃんちゃん

リンク

2012/3/12(Mon) 13:51:03|NO.45380

こんにちは。
質問内容が突拍子もないようなことであることは実感しておりますが、どうかお願いいたします。
さて、HSPで三角関数を使った直後、-0.000000という値を受け取りました。
-0.000000だから0と同じだと思っていたら、それを使った演算結果をint型にすると0になってしまいます。
返還前の値は1.000000で、それをint型にするとなぜか0になりました。
そして、その返還前の1.00が入った変数に対して、
if a=1:
のif分を実行すると、条件が満たされず通過してしまいます。
if a=1.0
if a=1.000000
上記のif分も試しましたが、やはり通過してしまいました。
この時点でよくわからなかったのですが、-0.000000を0.000000に変換することができないかと思い、いろいろ試行錯誤しています。
しかし、どうしてもif分に引っかかってくれません。
説明が下手で申し訳ありませんが、以下のことをご質問させてください。
1:なぜ-0.000000という数字が現れるのか
2:-0.000000はどのようにif分を書けばひっかかるのか
3:そもそも1が入った変数をint型にしたら0になるというのが信じられないが、考えられる原因はあるか


スクリプトは長いのでこんかいは省略させていただきます。
よろしくおねがいいたします。



この記事に返信する


ぬこ

リンク

2012/3/12(Mon) 15:42:25|NO.45383




にゃんちゃん

リンク

2012/3/12(Mon) 17:39:39|NO.45387

なるほど、-0はプログラム的には別物なんですね。お恥ずかしながら、知りませんでした。
int型にしたときに0になってしまうのは、hspmathのceil関数を使って解決しました。
wikipediaの記事をちゃんと理解して読めば、0になってしまった原因もわかるのかも知れませんが、数学が得意なほうじゃないので、はっきりとはつかめなかったです。とはいえ、勉強になりました。
今のところ動きに問題はないので、解決とします。ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.