tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 科学技術計算式の表示
投稿日: 2016/04/14(Thu) 10:27
投稿者魔界の仮面弁士
> この式の答えが
>  1.25687394108575
> となります。
> この表記を
>  1.26E-23
> と表示させたいのですが、どうしたら出来るのでしょうか?

えぇと、それはどういう意味でしょうか?

1.26E-23 というのは、0.0000000000000000000000126 を意味しますよね。
1.25687394108575 と比べても、近似値にすらならないと思うのですが…。


なお、有効桁数 3 桁の指数表記にしたい、という意味であれば、

Dim answer As Double
answer = CDbl("1.25687394108575")

Dim result As String
result = Format(answer, "0.00E+0")

で行えます。この場合の出力は「1.26E+0」です。



>  (((((0.281397047049681 * 100000000000000000000000) / 338.07) * 0.000000025) / (30 ^ 2 * 200000)) / 9197.9)
>  1.26E-23
> と表示させたいのですが、どうしたら出来るのでしょうか?

出力結果を、有効桁数 3 桁にしたいとのことですが、
計算処理は、有効桁数何桁で行いたいのでしょうか。


VB6 のデータ型でそのまま計算させると、
 1.25687394108575 … Double 型の場合。10進数での有効桁数は約15.4桁。
 1.256873941085750937532290576 … Decimal 型の場合。有効桁数は約28.8桁。
程度の精度しか出せませんが、試しに、有効桁数 1000 桁で演算してみると、
下記の結果が得られました。

+1.25687 39410 85750 93753 22905 76054 78274 31473 16590 37191
   87645 54958 65680 21203 57204 95559 83213 84047 35242 60624
   43681 92269 90897 76886 68950 34235 96478 40567 74995 32864
   36427 17918 59142 99853 24985 70882 61748 43415 78726 33959
   32758 20392 93181 95292 11418 26560 76972 48566 94898 95543
   95252 45595 80159 49514 77874 46768 74369 42609 14187 62582
   47664 00567 00267 73407 82070 32689 90163 82417 90090 25740
   14465 48279 15252 72076 93947 49359 68271 04222 52878 06916
   75330 34677 89144 46361 05206 63860 15980 16760 27290 42483
   11614 59331 77639 76046 52099 08840 74853 81326 14344 24089
   68959 86922 10666 50056 50392 64206 87226 13642 76280 95614
   66260 40288 40115 53011 06886 87586 89658 68287 06240 68169
   13972 33054 62489 92415 62778 70912 68536 53830 47417 40460
   79608 35646 56602 69562 36498 66918 93074 22366 19376 01984
   94064 64542 52975 28759 15307 85957 70352 65010 91941 35695
   58787 31241 32444 84682 06993 24026 13033 33388 30083 98536
   20774 39623 82435 22246 87900 31717 76274 26784 55347 77082
   35065 06019 06540 15434 03947 83685 40424 32103 67998 28650
   51239 66665 66858 57279 25242 09521 28204 05582 91108 48889
   40218 76573 84478 66849 37241 08874 82033 09460 05347 8094


まぁ、今回はそこまでの精度は必要ないと思いますが、VB6 で高精度の桁数を
行いたいのであれば、下記の記事が参考になるかと思います。

http://salvw.miscnotes.com/index.php/archives/49
http://salvw.miscnotes.com/index.php/archives/53

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。