回答編集履歴

2

追記

2018/07/05 00:48

投稿

sazi
sazi

スコア25138

test CHANGED
@@ -23,3 +23,19 @@
23
23
 
24
24
 
25
25
  Doubleは誤差が生じるので、問題が有るようなら、Currency型も検討してみて下さい。
26
+
27
+
28
+
29
+ 追記
30
+
31
+ --
32
+
33
+ hatenaさんの回答を見て、cosh()やsinh()を試してみましたが、Expの限界になる前にオーバーフローしました。
34
+
35
+ exp()を使用しているのはこのfanctionだけでしたので、ここを対処すれば良いと思いますが、
36
+
37
+ 無駄なロジック多いし、そもそも何してんのか不明です。幾つかパラメータの桁数を変えて確認しましたが0しか返却しませんし。
38
+
39
+
40
+
41
+ 上記とは別に、VBAで処理する際、除算は誤差を生むので、行うとしてもまとめて最後で行うことを良くしますが、オーバーフローに関しても途中でオーバーフローしないように、式を分解して展開するのが必要な箇所があるのかもしれません。

1

追記

2018/07/05 00:48

投稿

sazi
sazi

スコア25138

test CHANGED
@@ -19,3 +19,7 @@
19
19
  ```
20
20
 
21
21
  `2`だとInteger扱いですが、`2#`のように記述するとDoubleとして扱ってくれます。
22
+
23
+
24
+
25
+ Doubleは誤差が生じるので、問題が有るようなら、Currency型も検討してみて下さい。