Dim lngDaySec as Long
lngDaySec = 60 * 60 * 24
以上のコードでオーバーフローします。
しかし、2行目を以下のように書き換えると
lngDaySec = Clng(60 * 60) * 24
正常に値が代入されます。
Long型の値の範囲は「-2,147,483,648 ~ 2,147,483,647」
となっており、「60×60×24」は「86,400」だから
範囲を逸脱しているとは思えません。
どうしてオーバーフローするのでしょうか?
そして、Clng関数で回避できるのはなぜなんでしょう?
ひょっとしたらアホな質問をしているのかもしれませんが、
どなたかご回答いただければありがたいです。
No.1ベストアンサー
- 回答日時:
lngDaySec = 60 * 60 * 24
式中の定数(60,60,24)が内部的に整数型(Integer)として扱われているせいです。
特に指定しない限り、VBのコンパイラは式の内容を見て定数の型を適当に設定します。
今回の場合、式中に含まれる全ての数値が32767以下であるため、これは整数型の演算であると判断されてしまったのでしょう。
こういった事態を回避するためには、定数の後ろに#を付けることにより、明示的に長整数型だと宣言してやればいいです。
こんな感じです。
lngDaySec = 60# * 60# * 24#
早速のご回答ありがとうございます。
>式中の定数(60,60,24)が内部的に整数型(Integer)
>として扱われているせいです
なるほどー。不便ですねー。
左辺を見て判断して欲しい……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
テキストボックスの値を変数に...
-
[VBS]変数を定数に変換する方法...
-
processing エラーで、 "cannot...
-
C言語 アロー演算子について質...
-
ExcelのVBAでをA列に第0〜19項...
-
だれがとけるの?
-
VB6.0での条件文にある#の意味
-
ASP+SQLにてSessionがNullになる
-
Variant型で宣言してるのにEmpt...
-
Serialize(CArchive& ar)にて
-
gridViewの行選択解除
-
【VBA】複合代入演算子
-
変数にオフセットが付いている...
-
親ウィンドウの情報をインライ...
-
シェルスクリプトでPHPのchr()
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
VB6.0-整数と余りを求める
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
[VBS]変数を定数に変換する方法...
-
EXCEL/VBA 変数の値をクリップ...
-
jsp~jspにhiddenを使って変数...
-
テキストボックスの値を変数に...
-
processing エラーで、 "cannot...
-
Variant型で宣言してるのにEmpt...
-
整数xxxが大き過ぎますというエ...
-
C言語 アロー演算子について質...
-
プログラミングで変数と関数の...
-
Excel VBAでイコール二回使えま...
-
python の 連鎖代入の文法
-
Accessコンボボックスにレコー...
-
stdpicture型の変数に、、
-
C言語 列挙型(enum型)変数について
-
変数にオフセットが付いている...
-
複数の代入オペレーターオーバ...
-
【VBA】複合代入演算子
-
VBA 1行で複数の代入を行った...
おすすめ情報