
VB6です。 こんな現象初めてでびっくりしました。
変数A、h、mはLong型です。
A = 9 * 3600 + 54 * 60 ->オーバーフロー発生
A = 35640 ->オーバーフローにならない
h = 9 : m = 54
A = h * 3600 + m * 60 ->オーバーフローにならない
変数ではなく、実数で計算するとオーバーフローする意味がわかりません。また、計算結果を直接実数で代入した場合、なぜオーバーフローは
発生しないのかも意味不明です・・・
なぜ、オーバーフローが発生したりしなかったりするのでしょうか。
No.3
- 回答日時:
こんにちは。
A = 9 * 3600 + 54 * 60
Integer型の範囲が越えてしまうからです。
A = 9 * 3600 + 54 * 60&
と一つ、リテラル値を、Long型にすれば通ります。
ありがとうございました。
10年以上プログラミングはしているのに、独学とは恐ろしいものだと
実感しました。
実数の型なんて私の頭の辞書には載ってませんでした・・・
そういや、すべて実数で式をコーディングするのなんていままで無かったです・・・ 式の中に、longで宣言された変数があったので気がつかなかったってことなのでしょうね。
トホホ・・・・ です・・・
No.2
- 回答日時:
捕捉
最初からInteger型の範囲を超えていた場合には、Long型と
して計算を行いますが、それぞれの値がIntegerの範囲内で
あればInteger型として計算されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
C言語初心者。静磁場の計算。台...
-
VBAの再計算が反映されない件に...
-
DLL(VC++で作った)で稼動中の...
-
引き放し法による除算アルゴリ...
-
移動平均を計算するプログラム
-
モジュラス103の計算とは何でし...
-
Matlabでのニュートン法について
-
人生、宇宙、すべての答えとは...
-
窓関数について質問です。
-
VBAで関数をつくる
-
小数点以下を切り捨てたい
-
エクセルで特定のセルのみを任...
-
再帰呼び出しを用いるnPk,nCk ...
-
数値計算の高速化 (cos, sin, exp)
-
サインカーブを計算したい
-
VB6で 1-0.1*10 の計算結果が...
-
なぜオーバーフローになるので...
-
Visual C++でdebugとreleaseで...
-
MATLABの計算精度
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
matlabで計算終了
-
排他的論理和 BCC(水平パリテ...
-
変化させるセルが変化しない
-
モジュラス103の計算とは何でし...
-
傾いた四角形内の範囲の条件式
-
VBAで関数をつくる
-
[急募]Pythonについてです。
-
数値計算の高速化 (cos, sin, exp)
-
C言語についての質問です。 ル...
-
切り上げたい
-
DLL(VC++で作った)で稼動中の...
-
CとFORTRANの計算速度はどちら...
-
趣味で「乗換案内」みたいなソ...
-
CGIの実行権限(ディスク容...
-
エクセルで特定のセルのみを任...
-
functionを含んだプログラムを...
-
時間差を求める
おすすめ情報