| 
上へ整数 → MegaLong
 実数 → MegaLong
 10進数 → MegaLong
 文字列 → MegaLong
 整数部分
 小数部分
 部分値
 MegaLong → Long
 MegaLong → Double
 文字列変換
 |  | 
  
    | 数値変換 |  
    | MegaLong → Double |  
    | 最終更新日:2007/02/20 新規 |  ●概要  MegaLong  をDouble として返す。 ●方法  1億進数を通常の浮動小数点数に変換することになる。 
  指数が -324 〜308 までを対象とする。以外は、0.0 を返す。Double の精度桁は精々16桁なので、変換する配列数は、
 B は、変換元のMegaLong
 
 m = Math.Min(B.Mant.Length, 2)
 
 と、最大で 2 要素となる。
 
その仮数部配列要素 ai に以下の演算を行い総和する(MegaLong の定義式を演算しているだけ)。
 Σ(ai・10-8・(i+1))・10Exp
 
 そのまま演算すると、指数がDouble範囲を超えてしまうことがあるので、10-8・(i+1) を先に a 
  に対して演算する方式とする。以下のようになる。
 
 Dim DBase As Double = Base              
  '1億をDouble化
 Dim D As Double = 0.0
 For i = 0 To m - 1
 D = D + (B.Mant(i) / (DBase ^ (i + 1))) * 10 ^ Me.Exp
 Next
 
符号を設定する。 
 |