回答編集履歴
2
追記
answer
CHANGED
@@ -10,4 +10,12 @@
|
|
10
10
|
```
|
11
11
|
`2`だとInteger扱いですが、`2#`のように記述するとDoubleとして扱ってくれます。
|
12
12
|
|
13
|
-
Doubleは誤差が生じるので、問題が有るようなら、Currency型も検討してみて下さい。
|
13
|
+
Doubleは誤差が生じるので、問題が有るようなら、Currency型も検討してみて下さい。
|
14
|
+
|
15
|
+
追記
|
16
|
+
--
|
17
|
+
hatenaさんの回答を見て、cosh()やsinh()を試してみましたが、Expの限界になる前にオーバーフローしました。
|
18
|
+
exp()を使用しているのはこのfanctionだけでしたので、ここを対処すれば良いと思いますが、
|
19
|
+
無駄なロジック多いし、そもそも何してんのか不明です。幾つかパラメータの桁数を変えて確認しましたが0しか返却しませんし。
|
20
|
+
|
21
|
+
上記とは別に、VBAで処理する際、除算は誤差を生むので、行うとしてもまとめて最後で行うことを良くしますが、オーバーフローに関しても途中でオーバーフローしないように、式を分解して展開するのが必要な箇所があるのかもしれません。
|
1
追記
answer
CHANGED
@@ -8,4 +8,6 @@
|
|
8
8
|
|
9
9
|
Function sinh(x As Double) As Double
|
10
10
|
```
|
11
|
-
`2`だとInteger扱いですが、`2#`のように記述するとDoubleとして扱ってくれます。
|
11
|
+
`2`だとInteger扱いですが、`2#`のように記述するとDoubleとして扱ってくれます。
|
12
|
+
|
13
|
+
Doubleは誤差が生じるので、問題が有るようなら、Currency型も検討してみて下さい。
|