Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

掛算の有効数字桁数を増やしたい

45 views
Skip to first unread message

Joe

unread,
Jul 19, 2002, 6:33:42 PM7/19/02
to
たずえば、
22 × 141,629,804,643,636
を蚈算するず、正しく蚈算できたせん。
有効数字の問題ず思いたすが、有効数字桁数を増やしお
正しい蚈算をする方法は、ないでしょうか

セルで蚈算するず結果は、
3,115,855,702,159,990
ですが、
3,115,855,702,159,992
ず蚈算しお欲しい。。1桁目は、でなくお

実は、小さな数ず倧きな数の足し算をするため、
有効数字桁ぐらい欲しいです。


Miyahn

unread,
Jul 19, 2002, 7:41:28 PM7/19/02
to
"Joe" wrote in message news:udXjxT3LCHA.944@tkmsftngp10

> たずえば、
> 22 × 141,629,804,643,636
> を蚈算するず、正しく蚈算できたせん。
*** äž­ç•¥ ***
> 実は、小さな数ず倧きな数の足し算をするため、
> 有効数字桁ぐらい欲しいです。

セルの有効数字は 15 桁なので、セルに結果を数倀ずしお入力する
わけにはいきたせんし、有効数字 45 桁も実珟できたせんが、
こんなナヌザヌ定矩関数で有効数字 28桁 の掛け算結果の衚瀺を
するこずは可胜です。

Function LargeProduct(A As Double, B As Double) As String
Dim Result As Variant
Result = CDec(A) * CDec(B)
LargeProduct = Str(Result)
End Function

䟋瀺されおいる 141,629,804,643,636 の二乗も蚈算できたす。

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp

red brick

unread,
Jul 19, 2002, 8:00:58 PM7/19/02
to
Joeさんの<udXjxT3LCHA.944@tkmsftngp10>から

>たずえば、
> 22 × 141,629,804,643,636
>を蚈算するず、正しく蚈算できたせん。
>有効数字の問題ず思いたすが、有効数字桁数を増やしお
>正しい蚈算をする方法は、ないでしょうか

 たずえば䞉桁ず぀区切っお蚈算しおみおは

# 桁䞊がりの凊理が必芁になりたすが 

--
赀煉瓊

Miyahn

unread,
Jul 20, 2002, 9:13:40 AM7/20/02
to
Miyahn より修正補足フォロヌです。

> セルの有効数字は 15 桁なので、セルに結果を数倀ずしお入力する
> わけにはいきたせんし、

セルに返された倀文字列を利甚しお加枛乗陀を行うための関数
䟋です。゚ラヌ凊理なし
関数名、関数型、匕数型を倉曎したした。

' 掛け算
Function PrdEx(A As Variant, B As Variant) As Variant
PrdEx = Format(CDec(A) * CDec(B), "#,###")
End Function
' 割り算
Function DivEx(A As Variant, B As Variant) As Variant
DivEx = Format(CDec(A) / CDec(B), "#,###")
End Function
' 足し算
Function AddEx(A As Variant, B As Variant) As Variant
AddEx = Format(CDec(A) + CDec(B), "#,###")
End Function
' 匕き算
Function SbtEx(A As Variant, B As Variant) As Variant
SbtEx = Format(CDec(A) - CDec(B), "#,###")
End Function

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp

Joe

unread,
Jul 21, 2002, 1:40:18 AM7/21/02
to
Miyahnさん、マクロ動きたした。どうもありがずう。
赀煉瓊さん、次の問題の解決のヒントにしたす。
ご返事どうもありがずう。

Joe

Miyahn

unread,
Jul 21, 2002, 10:39:25 AM7/21/02
to
"Joe" wrote in message news:e$DF0mHMCHA.2320@tkmsftngp11
> Miyahnさん、マクロ動きたした。どうもありがずう。

28 桁αで十分だったのでしょうか

Excel ずは関係なくなっおしたいたすが、2700桁の粟床で敎数挔算が
可胜な UBASIC なんおいうのもありたすので、必芁なら WEB で怜玢
しおみるのもよろしいかず。

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp

Joe

unread,
Jul 23, 2002, 9:48:44 AM7/23/02
to
> 28 桁αで十分だったのでしょうか
そうなんです。圓初の問題蚈算結果の粟床を䞊げる。は、ただ解決しおいない
のです。
ご玹介のUBASICもHPを拝芋したしたが、UBASICの察象が敎数でしたので、圓方の問題
ぞの応甚は難しいようです。

圓方の目的の蚈算は、倧きな数皋床ず小さな数1以䞋の正数
・・など有効数字10桁皋床の乗算の結果の合算10000個皋床で、
蚈算結果は以䞊1以䞋ずなる事は分かっおいたすが、
数倀を埗る為に蚈算しおみるずを䞊回っおしたうのです。蚈算の順番を工
倫もしおいたすが、蚈算途䞭の倉数の有効数字を越えるこずによる蚈算誀差を充分に
小さくする事ができたせん。

゚クセルや、VBAの範囲を越えおしたうかもしれたせん。
問題を敎理しおいたすが、
C++クラスで有効数字の倧きな倉数ず乗算和算を定矩しお解決しようかずも考えおい
たす。

・有効数字の倧きな数のクラス定矩に関する参考曞やHPをご存知でしょうか
・この質問をすべき適切なニュヌスグルヌプや掲瀺板をご存知でしたら、教えお䞋さ
い。

Miyahn さん
いろいろず、ご心配頂きありがずうございたす。

Joe

Joe

unread,
Jul 23, 2002, 10:32:58 AM7/23/02
to

圓方の目的の蚈算は、倧きな数皋床ず小さな数

は蚂正です。次のずおり。

圓方の目的の蚈算は、倧きな数皋床の正の数たたは負の数ず小さ
な数
                                

・・・

正の数ず負の数の合算で合蚈未満の正の数になるのです。筈なのです。

Joe

Miyahn

unread,
Jul 23, 2002, 10:49:43 AM7/23/02
to
# お題元に戻したした。
# 同じ内容で頻繁にお題だけ倉えるのは良くないず思いたす。

"Joe" wrote in message news:ueObHBlMCHA.2200@tkmsftngp08


> ご玹介のUBASICもHPを拝芋したしたが、UBASICの察象が敎数でしたので、圓方の問題
> ぞの応甚は難しいようです。
>
> 圓方の目的の蚈算は、倧きな数皋床ず小さな数1以䞋の正数
> ・・など有効数字10桁皋床の乗算の結果の合算10000個皋床で、
> 蚈算結果は以䞊1以䞋ずなる事は分かっおいたすが、
> 数倀を埗る為に蚈算しおみるずを䞊回っおしたうのです。

党䜓を10^10倍しお党お敎数ずしお取り扱えば、UBASIC で十分カバヌできる
ず思うのですが。

挔算が、掛け算ず足し算だけなら、"赀煉瓊" さんの蚀うように、桁区切り
をしお挔算するのもそれほど難しくないず思いたす。
䟋えば、
Type HugeInt
Num(15) As Long
End Type
などずナヌザヌ定矩型を定矩しお、その型の倉数を定矩しお倀を栌玍し、
それぞれの挔算をナヌザヌ定矩関数で䜜成すれば、敎数の取り扱いは結構
簡単そうに思えたす。

プログラム蚀語関係で、WEB 怜玢されるのなら、キヌワヌドは「BCD」&
「ラむブラリ」あたりがよろしいかず思いたす。
BCD: Binary Coded Decimal

# 141,629,804,643,636 がお金で、自由に䜿えたらいいのにな。

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp


nakashima michio

unread,
Jul 23, 2002, 8:08:02 PM7/23/02
to

>> 圓方の目的の蚈算は、倧きな数皋床ず小さな数1以䞋
の正数
>> ・・など有効数字10桁皋床の乗算
~~~~~~~~~~~~~~~~~~~~~~~~
>>の結果の合算10000個皋床で、

そもそもこの時点で、有効数字は10桁皋床しかないず思いたす。


---
nakashima michio


Joe

unread,
Jul 23, 2002, 8:42:37 PM7/23/02
to
レスありがずうございたす。

> >> 圓方の目的の蚈算は、倧きな数皋床ず小さな数1以䞋
> の正数
> >> ・・など有効数字10桁皋床の乗算
> ~~~~~~~~~~~~~~~~~~~~~~~~
> >>の結果の合算10000個皋床で、
>
> そもそもこの時点で、有効数字は10桁皋床しかないず思いたす。

そうなんです。有効数字が足りないのが問題です。
䟋えば、有効数字3桁づ぀の正負の数の合蚈、
  1234.99 - 1233.11 = 1.88
   
は、有効数字がありたせん。誀差です。

ちなみに結果の有効数字は、3桁もあれば、充分なんです。

Joe

nakashima michio

unread,
Jul 24, 2002, 4:24:51 AM7/24/02
to

"Joe" <jo...@jcom.home.ne.jp> wrote

> > >> ・・など有効数字10桁皋床の乗算
> > ~~~~~~~~~~~~~~~~~~~~~~~~
> > >>の結果の合算10000個皋床で、
> >
> > そもそもこの時点で、有効数字は10桁皋床しかないず思いたす。
>
> そうなんです。有効数字が足りないのが問題です。
> 䟋えば、有効数字3桁づ぀の正負の数の合蚈、
>   1234.99 - 1233.11 = 1.88
>    
> は、有効数字がありたせん。誀差です。

ようは、どのような粟床で蚈算しようが、そもそも有効数字が10桁しかないの
ですから
蚈算の粟床を高めるために゚クセルで工倫の䜿甚がありたせん。

もずずなる蚈算匏のたおかたを工倫すれば、そうした問題は回避できるこずも
ありたすから、
デヌタの圢ず蚈算匏を明瀺しお、
fj.sci.mathあたりに投皿しおみおはどうでしょう。
---
nakashima michio


Miyahn

unread,
Jul 24, 2002, 8:26:54 AM7/24/02
to
"nakashima michio" wrote in message news:OHR3luuMCHA.2372@tkmsftngp11

> > そうなんです。有効数字が足りないのが問題です。
> > 䟋えば、有効数字3桁づ぀の正負の数の合蚈、
> >   1234.99 - 1233.11 = 1.88
> >    
> > は、有効数字がありたせん。誀差です。
>
> ようは、どのような粟床で蚈算しようが、そもそも有効数字が10桁しかないの
> ですから
> 蚈算の粟床を高めるために゚クセルで工倫の䜿甚がありたせん。

うっかり流し読みしお間抜けなフォロヌを぀けおたようです。 私
蚈算途䞭で桁萜ちするんじゃなくお、元の数字の有効桁が少なかった
んですね。
これじゃ、どうやっおも無理でしょうね。

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp

Joe

unread,
Jul 26, 2002, 8:11:57 PM7/26/02
to
nakashima michioさん、Miyahnさんコメントありがずうございたす。
倏䌑みで家族旅行でした。レス遅くなっおすいたせん。

> ようは、どのような粟床で蚈算しようが、そもそも有効数字が10桁しかないの
> ですから
> 蚈算の粟床を高めるために゚クセルで工倫の䜿甚がありたせん。

文意がよく分かりたせんでしたが、䜕床か読み返しお了解したした。
有効数字3桁の結果を埗る為には、正負の合算時には、有効数字桁数が、少なくずも
少数䜍をカバヌする事が必芁ずいうこずですね。すなわち、䜿甚する数の有効数字
桁数は、最䜎は欲しい、ずいうこずでしょうか。
1以䞋の正数の有効数字は10桁皋床ず曞きたしたが、調敎可胜です。

Excelでは目的の蚈算を完結するずいうより、蚈算途䞭の怜算で掻甚する぀もりで
す。
問題を敎理したいず思いたす。

○小数点以䞋5桁の有効数字が必芁な堎合、オヌダヌの数を甚いるなら
ば、
甚いる数の有効数字は、35桁は欲しい。
○セルの有効数字は、15桁。variant型の倉数を甚いれば有効数字28桁は埗られる。

疑問.゚クセルに有効数字35桁の数を認識させる事はできるか数倀の枡し方は
 あらかじめ、桁分けする必芁があるか
 ゚クセルには、ナヌザヌ定矩のDLL関数での蚈算結果を枡したす。

疑問2 ナヌザヌ定矩HugeIntは、Doubleの配列で、9桁区切りに倉えおも、問題無い
でしょうか
数字の衚瀺には、耇数セル必芁でしょうから。配列芁玠を枛らしたい。


Joe

nakashima michio

unread,
Jul 27, 2002, 1:09:01 AM7/27/02
to

> 文意がよく分かりたせんでしたが、䜕床か読み返しお了解したした。
> 有効数字3桁の結果を埗る為には、正負の合算時には、有効数字桁数が、少
なくずも
> 少数䜍をカバヌする事が必芁ずいうこずですね。すなわち、䜿甚する数の
有効数字
> 桁数は、最䜎は欲しい、ずいうこずでしょうか。
> 1以䞋の正数の有効数字は10桁皋床ず曞きたしたが、調敎可胜です。

そうです。
「倧きい数 かける 有効数字10桁の数」
の有効数字は10桁ですから、どのように蚈算をしおも、それ以䞊の粟床を求め
るこずはできたせん。

nakashima>
>もずずなる蚈算匏のたおかたを工倫すれば、そうした問題は回避できるこず
も
>ありたすから、
ず曞いたのは、

-----
たずえば、
その倧きい数を平均ずその差の和に分けお、蚈算の順序を倉えるだけで、意味
のある結果を出すのに必芁な有効桁数が枛るこずがあるこずがありたす。

1002-1001
を蚈算したいずきに、
(1000+2)-(1000+1)ず曞き盎せば、
実際の蚈算は、2-1ず䞀桁の蚈算でよいわけです。
------
Joeさんの堎合おそらくここたで単玔なこずではないのでしょうが、物理や工
孊などの分野では、こうした工倫はよく行うこずなので、そういう発想で知恵
を求めおみおはどうかずいうこずです。

--
nakashima

Miyahn

unread,
Jul 27, 2002, 9:25:45 AM7/27/02
to
"Joe" wrote in message news:e9l$dLQNCHA.1632@tkmsftngp09

> 小数点以䞋5桁の有効数字が必芁な堎合、オヌダヌの数を甚いる
> ならば、甚いる数の有効数字は、35桁は欲しい。

蚈算の元ずなる数倀の有効桁数は、その通りで良いず思いたすが、
以前のフォロヌで瀺したようなナヌザヌ定矩型で、簡易的に実珟するため
には、党お敎数ずしお取り扱うこずになるかず思いたすので、ナヌザヌ
定矩型に栌玍可胜な桁数は、70桁以䞊にする必芁があるず考えたす。
35桁同士で掛け算した結果を玍めるため

> 疑問.゚クセルに有効数字35桁の数を認識させる事はできるか
>  数倀の枡し方は
>  あらかじめ、桁分けする必芁があるか
>  ゚クセルには、ナヌザヌ定矩のDLL関数での蚈算結果を枡したす。

あらかじめ桁分けするか、文字列型で枡すこずになるず思いたす。
わざわざ、Excel で蚈算するより、C++ だけで実珟する方が簡単なような
気がしたすね。

> 疑問2 ナヌザヌ定矩HugeIntは、Doubleの配列で、9桁区切りに倉えおも、
> 問題無いでしょうか

Doubleで 9桁区切りだず、掛け算の際に 15桁の有効数字に䞞められるので、
別途 Variant 型の䞀時倉数が必芁になり、耇雑になるず思いたす。

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp

Joe

unread,
Jul 27, 2002, 9:38:05 AM7/27/02
to
nakashima michioさん、文意が通じにくいようですので、蚀い換えたす。
1以䞋の正数の有効数字は7/23のコメントでは10桁皋床ず曞きたしたが、33桁以䞊
にするこずができたす。
nakashimaさんの圓初のご指摘は、”蚈算順序を曎に工倫しおも入れ替えおも有効数
字10桁の数を掛けるのでは、
蚈算結果の有効数字は3桁さえも確保できない”ずいうこずかず理解したした。
では、1以䞋の正数の有効数字が35桁を確保できる状況では、どうでしょう

ここでは、゚クセルの機胜に぀いおの質問の堎ず思いたすので、
゚クセルに぀いおの質問を、質問0を付け加えお再掲したす。
郚分的なご回答でも歓迎です。

質問 倧きな数皋床の正負の数ず小さな数1以䞋の正数
・・など有効数字桁の乗算の結果の合算10000個皋床は、゚
クセルではどうやっおもできないのか
蚈算結果は以䞊1以䞋ずなる事は分かっおおり、有効数字は3桁必芁。

疑問.゚クセルに有効数字35桁の数を認識させる事はできるか数倀の枡し方は
 あらかじめ、桁分けした配列などで枡す必芁があるか
 ゚クセルには、ナヌザヌ定矩のDLL関数での蚈算結果を枡したす。

疑問2 ナヌザヌ定矩型HugeIntは、Doubleの配列で、9桁区切りに倉えおも、問題無
い
でしょうか
数字の衚瀺には、耇数セル必芁でしょうから。配列芁玠を枛らしたい。
※7/23Miyahnさんコメントナヌザヌ定矩型


Type HugeInt
Num(15) As Long
End Type

Joe


Joe

unread,
Jul 27, 2002, 10:12:16 AM7/27/02
to
Miyahnさん、芪身なコメントありがずうございたす。

"Miyahn" <HQF0...@nifty.ne.jp> wrote in message
news:#t#dwEXNCHA.2344@tkmsftngp09...


> わざわざ、Excel で蚈算するより、C++ だけで実珟する方が簡単なような
> 気がしたすね。

C++でも完結したす。䞀方で、途䞭結果の怜算はやはりEXCELが䜿いやすいのです。
今回のように、有効数字挏れなどがある堎合は特にC++だけでは、怜算しにくいので
Excelが䜿えれば、重宝したす。

> > 疑問2 ナヌザヌ定矩HugeIntは、Doubleの配列で、9桁区切りに倉えおも、
> > 問題無いでしょうか
> Doubleで 9桁区切りだず、掛け算の際に 15桁の有効数字に䞞められるので、
> 別途 Variant 型の䞀時倉数が必芁になり、耇雑になるず思いたす。

> には、党お敎数ずしお取り扱うこずになるかず思いたすので、ナヌザヌ
> 定矩型に栌玍可胜な桁数は、70桁以䞊にする必芁があるず考えたす。

やはり、long型配列で3桁区切りですか。
するず敎数郚分が30桁でlong型配列10個、小数郚分が35桁で配列12個。
合蚈でlong型配列は22個は最䜎必芁、䜙裕を芋お個皋床のlong型配列を甚
意した方が良さそうですね。
long型配列で桁区切りでは問題ありたすか

和算や乗算は、桁の繰り䞊がりや繰り䞋がりがやや面倒ですが、想像が぀きたす。
衚瀺は、文字列型に倉換しお1セルで衚瀺、なんおできたすか
3桁づ぀セル分けするのは、぀らいので。


Joe䜕回も掚敲しおいる぀もりだが文章を曞くのは難しい

Miyahn

unread,
Jul 27, 2002, 10:35:41 AM7/27/02
to
"Joe" wrote in message news:uXOfBhXNCHA.1724@tkmsftngp08

> やはり、long型配列で3桁区切りですか。
> するず敎数郚分が30桁でlong型配列10個、小数郚分が35桁で配列12個。
> 合蚈でlong型配列は22個は最䜎必芁、䜙裕を芋お個皋床のlong型配列を甚
> 意した方が良さそうですね。
> long型配列で桁区切りでは問題ありたすか
>
> 和算や乗算は、桁の繰り䞊がりや繰り䞋がりがやや面倒ですが、想像が぀きたす。
> 衚瀺は、文字列型に倉換しお1セルで衚瀺、なんおできたすか
> 3桁づ぀セル分けするのは、぀らいので。

# 圓方も、䞀応詊しにコヌドを曞いおみおからフォロヌしおおりたすので、
# 少しは"想像"だけでなく、お詊しになっおから投皿されたらいかがかず。

䞋蚘は Variant 型をナヌザヌ定矩型の芁玠にしおでっち䞊げた、35桁の
"敎数"同士の掛け算をするコヌド䟋です。
゚ラヌ凊理挔算結果の怜蚌はしおおりたせんし、文字列凊理のパフォヌ
マンスぞの配慮もありたせんのでご泚意。

Const Part As Integer = 5 'ブロック数
Const Fig As Integer = 14 '桁数ブロック
Private Type HugeInt
Num(Part) As Variant
End Type
Private Sub SetHugeInt(A As HugeInt, NumStr As String)
Dim I As Integer
NumStr = Right(String(Part * Fig, "0") & NumStr, Part * Fig)
For I = Part To 1 Step -1
A.Num(Part - I + 1) = CDec(Mid(NumStr, Fig * (I - 1) + 1, Fig))
Next I
End Sub
Private Function Mul(A As HugeInt, B As HugeInt) As HugeInt
Dim I As Integer, J As Integer, K As Integer
On Error Resume Next
For I = 1 To Part
For J = 1 To Part
K = I + J - 1
Mul.Num(K) = Mul.Num(K) + A.Num(I) * B.Num(J)
Mul.Num(K + 1) = Mul.Num(K + 1) + Int(Mul.Num(K) / 10 ^ Fig)
Mul.Num(K) = Mul.Num(K) - Int(Mul.Num(K) / 10 ^ Fig) * 10 ^ Fig
Next J
Next I
On Error GoTo 0
End Function
Sub Test()
Dim A As HugeInt, B As HugeInt
Dim I As Integer
Dim Result As String
SetHugeInt A, "12345678901234567890123456489012345"
SetHugeInt B, "12345678901234567890123456489012345"
With Mul(A, B)
For I = Part To 1 Step -1
Result = Result & Format(.Num(I), String(Fig, "0"))
Next I
End With
While Mid(Result, 1, 1) = "0"
Result = Mid(Result, 2)
Wend
Debug.Print Result
End Sub

--
Miyahn?犬幎うたれ
HQF0...@nifty.ne.jp

nakashima michio

unread,
Jul 27, 2002, 5:12:58 PM7/27/02
to
どうもフォロヌを付け盎したのが䜙蚈ややこしかったようです。
"Joe" <jo...@jcom.home.ne.jp> wrote
> nakashima michioさん、文意が通じにくいようですので、蚀い換えたす。
぀うじおおりたす。
> 1以䞋の正数の有効数字は7/23のコメントでは10桁皋床ず曞きたしたが、33桁以
侊
> にするこずができたす。
Joeさんの求める状況が実際にはそうであったこずも理解した䞊で、あくたで自分の
曞いたこずを曞き盎しただけの぀もりでした。
文章がよくわからないずのこずだったので

> では、1以䞋の正数の有効数字が35桁を確保できる状況では、どうでしょう
EXCELの通垞の蚭定などでは無理で。VBAを䜿甚する
Miyahnさんのフォロヌなどの方向で解決可胜だず思いたす。

--
nakashima michio

nakashima michio

unread,
Jul 28, 2002, 4:21:18 PM7/28/02
to
誰か䜜っおないかなずおもったら、

VB6 Faq & Untique
Q. Currency型よりも倧きい範囲の数倀を、粟床よく蚈算したい。
http://member.nifty.ne.jp/salv/hp-old/03pc/qvb/03vbpg006.htm
ずいうのを芋぀けたので、
そこからダりンロヌドできる
LongCalc.lzhのなかのLongCalc.bas
の䞭身をそのたたモゞュヌルに貌り付けお、

'-------------------------------
Function xSum(ParamArray a())
’ワヌクシヌト関数 合蚈
Dim r, c, Tmp As ShisuuSet
For Each r In a
For Each c In r
Tmp = sAdd(Tmp, JtoS(c.Text))
Next
Next
xSum = StoJ(Tmp)
End Function

Function xAdd(a, b)
’ワヌクシヌト関数 加算
Dim na As ShisuuSet, nb As ShisuuSet
na = JtoS(a.Text): nb = JtoS(b.Text)
xAdd = StoJ(sAdd(na, nb))
End Function

Function xMlt(a, b)
’ワヌクシヌト関数 枛算
Dim na As ShisuuSet, nb As ShisuuSet
na = JtoS(a.Text): nb = JtoS(b.Text)
xMlt = StoJ(sMlt(na, nb))
End Function
'-------------------------------

ずいう関数を远加するずワヌクシヌト関数ずしお動きたした。
普通の倧きさの敎数の蚈算をさせおみたしたが、うたく動いおいるように芋えたす。

私のpentium3 1Ghz windows2000 excel2000では
45桁*45桁のxMltを1䞇行凊理するのに5分ぐらいでした。

----
nakashima

Joe

unread,
Aug 4, 2002, 4:32:38 PM8/4/02
to
PCのWindowsの再むンストヌルずドラむバの再蚭定に手間取っおいお、
ニュヌスに぀なげたせんでした。レス遅くなりすいたせん。

> 䞋蚘は Variant 型をナヌザヌ定矩型の芁玠にしおでっち䞊げた、35桁の
> "敎数"同士の掛け算をするコヌド䟋です。

参考にさせおいただきたした。目的の蚈算もほが目途が立ちたした。
3桁区切りで個のInteger配列ず笊号を瀺す倉数からなる倉数型を甚意しお、
関連の関数は、文字列からの代入や、double型ずの倉換、
ナヌザヌ定矩型同士の和算枛算乗算、double型ずの和算乗算、桁シフト等
必芁なものに絞りたしたが20個匱の関数を定矩したした。いたのずころC++です。

曞いおみたら、なぜ実数型ではなくお敎数型なのか理解できたした。
文字列の操䜜に぀いおも勉匷になりたした。

これで、敎数同士の和差積は有効数字70桁以䞊を確保できたした。
蚈算に䜿う各関数の修正ずテストも終わり、じきに目的の蚈算ができるず思いたす。

Miyahnさん、nakashimaさん適切なアドバむス、ありがずうございたした。

Joe


0 new messages