teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/07/05 00:48

投稿

sazi
sazi

スコア25430

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

追記

2018/07/05 00:48

投稿

sazi
sazi

スコア25430

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型も検討してみて下さい。