• 締切済み

ランダムに値を返す

こんにちは。 SP初心者ですが、今JSPでプログラムを勉強しています。 そこで質問ですがたとえばどこかのWebページを開いたときにポイントをつけたいと思っています。 そのポイントは一定ではなくある人は10ポイント、ある人は-4ポイントと言うようにランダムに表示したいのです。 それでその値の幅を-30~+30くらいにしたいと考えていますが調べたところrandomは0.0 以上で、1.0 より小さい正の符号の付いた値を返す。とのことでした。 どうやったらマイナスも表示できるようなランダムな値を返すものができるのでしょうか? よろしくお願いします。

みんなの回答

noname#21585
noname#21585
回答No.2

(int)(Math.random() * 61) - 30 ということでしょう。動かなかったらすいません。

jun2249
質問者

補足

ありがとうございます。 返事遅くなってすみません。 範囲を-50~+50に変更しました。 それで(Math.random() * 100) - 50 にしたところたとえば+24.0や-8.0というように小数点以下に.0というふうについてしまいます。 (int)をつけても同じでした。 どうしてなのかご存知ですか? ご存知だったらおしえてください。 お願いします。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

randomが「0以上1.0未満」を返すのであれば、それを61倍し、小数点を切り捨て、30を引いて下さい。 61倍すると「0以上61未満の実数」になります。(61を含まない) それの小数点を切り捨てると「0以上60以下の整数」になります。(60を含む) さらに30を引くと「-30以上30以下の整数」になります。

jun2249
質問者

補足

ありがとうございます。 具体的にはどのような記述をすればいいのか教えていただけませんか?

関連するQ&A