ホーム ] 多倍長語 MegaLong ] 基数変換 ] 数値変換 ] 定数システム ] 演算時間予測システム ]

上へ
整数 → MegaLong
実数 → MegaLong
10進数 → MegaLong
文字列 → MegaLong
整数部分
小数部分
部分値
MegaLong → Long
MegaLong → Double
文字列変換

数値変換

文字列変換

最終更新日:2007/04/26 新規

●概要

  MegaLong を、人間が分る文字列数値に変換する。MegaLong を正確に表現できる。

●方法

○数値表示

 指数表示と固定小数点表示がある。また、仮数部の表示桁数を制限できる。

   ・指数表示            1.23456789E-5

   ・固定小数点表示  0.0000123455678

  1. 負の場合は、- 符号を設定。
  2. 仮数部をそのまま、StringBuilder にて数字文字列とする。
  3. 指数表示の場合は、初めの数字の後ろに小数点を挿入し、指数部を表示する。
  4. 固定小数点表示の場合は、指数と桁数から小数点の位置を算出、挿入する。小数のみの場合は、頭に必要な 0 を挿入し、整数の場合は、後ろに挿入する。
  5. 表示桁数に制限がある場合は、その処理を行う。制限された場合は、仮数部の末尾に、"・・・" を付加して、省略されたことを示す。

○内容表示

 主としてディバッグのためのもので、MegaLong構造体の中身を物理ダンプする。Sign、Exp、Length、Mant() を下図の例のように表示する。

 構造体のメソッド Description として以下のような処理である。

Function Description(Optional ByVal Limit As Integer = 0) As String
   Dim i, S As Integer
   Dim T As String = ""
   T = "Sign=" + Me.Sign.ToString + ", Exp=" + Me.Exp.ToString + ", Length=" + Me.Length.ToString + vbCrLf + "Mant()" + vbCrLf
   S = Me.Mant.Length
   If Limit > 0 AndAlso Limit < S Then
      S = Limit
   End If
   For i = 0 To S - 1
      T = T + Me.Mant(i).ToString("00000000") + " "
   Next
   Return T
End Function