- ベストアンサー
1万から100万の乱数を発生させるには?
■VBのバージョン : VB6 お世話になります。 斎藤と申します。 1万から100万までの乱数を発生させたいのですが e = CInt(Int((100000 - 10000 + 1) * Rnd() + 10000)) 公式に書いてあったサンプルを用いたこのコードだとオーバーバッファしてしまい 途方にくれています。 お知恵を拝借したいと存じます。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
オーバーフローしたのはCInt()関数を使用しているためです。 ご存知のようにCInt(n)はInteger型の値を返す関数ですから、nはInteger型で扱える数値の範囲を超えるものであってはいけません。 因みにInteger型変数の取りうる値の範囲は-32768~32767です。この範囲を超える整数を扱うのであれば、Long型の変数を使用します。 解決法としましては、CInt()をCLng()に変更するか、または、CInt()を削除してください。
お礼
お世話になりました。斎藤です。 LucyDiamondさんに教えていて頂いたおかげで 問題が解決しました。ありがとうございました。