- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数への数式の代入でオーバーフローします)
変数への数式の代入でオーバーフロー?Clng関数の役割とは?
このQ&Aのポイント
- 変数への数式の代入でオーバーフローする現象について説明します。
- Clng関数を使用してオーバーフローを回避する方法についても解説します。
- Long型の値の範囲と数式の結果についても触れながら、質問の意図に応えます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
lngDaySec = 60 * 60 * 24 式中の定数(60,60,24)が内部的に整数型(Integer)として扱われているせいです。 特に指定しない限り、VBのコンパイラは式の内容を見て定数の型を適当に設定します。 今回の場合、式中に含まれる全ての数値が32767以下であるため、これは整数型の演算であると判断されてしまったのでしょう。 こういった事態を回避するためには、定数の後ろに#を付けることにより、明示的に長整数型だと宣言してやればいいです。 こんな感じです。 lngDaySec = 60# * 60# * 24#
お礼
早速のご回答ありがとうございます。 >式中の定数(60,60,24)が内部的に整数型(Integer) >として扱われているせいです なるほどー。不便ですねー。 左辺を見て判断して欲しい……。