【超高速】C/C++に代わる低級言語を開発したい 5
■ このスレッドは過去ログ倉庫に格納されています
0879デフォルトの名無しさん
2010/05/16(日) 06:11:39さて、それは何進法で表現するのか?
任意精度というからには、その分だけのバッファ領域を
どのタイミングで確保、再確保するのか?
2進数か10進数で表現するかなどでまた揉めるぞ
3進数や10進数を処理できる量子コンピュータが一般化すると2進数プログラムはゴミクズ以下の癌細胞になる
そして10進数は現代でもすでに金融系で重要視されている
JavaのBigInteger、BigDecimal型、C#のdecimal型のように
それから2進数と10進数との間には10進2進変換誤差があるからな
>>818
JavaのBigDecimal#divide()のようなメソッドで割り算を表現するというのか?
もし任意精度にすると、割り算メソッドの引数はこうなってしまうぞ。
「スケール」はバッファ領域や処理する最大桁数を意味する。roundingModeは丸めモードだ。端数を切り捨てるのか、切り上げるのか、
それとも奇数の場合切り上げ、偶数の場合切り捨てる、といった処理をするなどの選択をするためのものだ。
mathContextは桁数制度と丸目モードをカプセル化したオブジェクトだ。
コンストラクタであらかじめmathContextオブジェクトを詰めておけばこういう手間は省けるが。
http://java.sun.com/javase/ja/6/docs/ja/api/java/math/BigDecimal.html#divide(java.math.BigDecimal,%20int,%20java.math.RoundingMode)
BigDecimal#divide(BigDecimal, int, int)
divide(BigDecimal divisor, int scale, int roundingMode)
値が (this / divisor) で、スケールが指定されたものである BigDecimal を返します。
divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
値が (this / divisor) で、スケールが指定されたものである BigDecimal を返します。
divide(BigDecimal divisor, MathContext mc)
コンテキスト設定に従った丸めを使用して、値が (this / divisor) である BigDecimal を返します。
■ このスレッドは過去ログ倉庫に格納されています