一定以上の数字に切り捨てを行うと・・・(バグ報告掲示板

投稿: Material 7186 1 mini ikosami 投稿:2011/11/02 23:18:02(最新:2011/11/04 19:16:04)
http://rmake.jp/boards/2/topics/807
から、↓で調べてみたら、
a = 6666666666
b = 3
if a/b == floor(a/b)
  speak("割り切れる")
else
  speak("割り切れる")
end

で6666666666が3で割ると割り切れないと出たので、
speak(floor(6666666666))とやったらおかしな数字が出てきました。

調べてみたら2147483647より大きい数を切捨てすると、数字がおかしくなります・・・

#確認用
speak(floor(2147483647),":",floor(2147483648))

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Material 7186 1 mini ikosami(投稿日:2011/11/04 19:16, 履歴)
タクミ2310号さん
ありゃま。本当ですね(^^;)
割り切れる→割り切れない

aoihikawaさん
まさか最大があったとは知りませんでした

rurun9さん
そのようですね(^^;)



ひょっととして、
2147483647以上は自力でどうにかしてで対応させるしかないですか?
Nyan mini rurun9(投稿日:2011/11/03 02:29, 履歴)
なるほど、数値は10桁になるとほぼアウトと。
計算するような範囲では普通出てこない桁数だから今までバレなかったのかw
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/11/02 23:41, 履歴)
2147483647、int型の最大値ですね。

恐らく数値の変数は
int型なのでしょう。
User icon mini 退会したユーザー(投稿日:2011/11/02 23:22, 履歴)
あの、ひとついいですか?
if a/b == floor(a/b)
  speak("割り切れる")
else
  speak("割り切れる")#どっちも同じ(w
end

これだと、ifで分岐した意味ないですよね?


if a/b == floor(a/b)
  speak("割り切れる")
else
  speak("割り切れない")
end

これでやったから、6666666666を3で割ると割り切れないと出たんですよね?