現在の電卓キュー でのオーバーフローとアンダーフローがどうなるかをべき乗計算を繰り返してためしてみました。
試したところべき乗になってなかったので、計算自身を見直しましたが(w)、以下のような結果になりました。
(1)オーバーフロー
以下のようにオーバーフローした時点で0になっているようです。
(2)アンダーフロー
こちらもゼロになっています。
普通Decimal型の場合、オーバーフローではNanが返され、アンダーフローでは数値が1以上になったりするようですが、この電卓キュー では計算結果を文字列で受け取っているため、ゼロになっているようです。
とりあえずいずれも12桁や14桁は計算できているようなので、計算できていることを前提に、そのまま電卓のオーバーフロー処理を書いていきます。
試したところべき乗になってなかったので、計算自身を見直しましたが(w)、以下のような結果になりました。
(1)オーバーフロー
以下のようにオーバーフローした時点で0になっているようです。
2
20
Operater5 *
Operater1 *=
400
Operater2 *
Operater1 *=
160,000
Operater2 *
Operater1 *=
25,600,000,000
Operater2 *
Operater1 *=
655,360,000,000,000,000,000
Operater2 *
Operater1 *=
429,496,729,600,000,000,000,000,000,000,000,000,000,000
Operater2 *
Operater1 *=
0
Operater2 *
Operater1 *=
0
Operater2 *
Operater1 *=
0
(2)アンダーフロー
こちらもゼロになっています。
0.
0.2
Operater5 *
Operater1 *=
0.04
Operater2 *
Operater1 *=
0.0016
Operater2 *
Operater1 *=
0.00000256
Operater2 *
Operater1 *=
0.0000000000065536
Operater2 *
Operater1 *=
0
Operater2 *
Operater1 *=
0
Operater2 *
Operater1 *=
普通Decimal型の場合、オーバーフローではNanが返され、アンダーフローでは数値が1以上になったりするようですが、この電卓キュー では計算結果を文字列で受け取っているため、ゼロになっているようです。
とりあえずいずれも12桁や14桁は計算できているようなので、計算できていることを前提に、そのまま電卓のオーバーフロー処理を書いていきます。
0 件のコメント:
コメントを投稿