| 
上へ整数 → MegaLong
 実数 → MegaLong
 10進数 → MegaLong
 文字列 → MegaLong
 整数部分
 小数部分
 部分値
 MegaLong → Long
 MegaLong → Double
 文字列変換
 |  | 
  
    | 数値変換 |  
    | 実数 → MegaLong  |  
    | 最終更新日:2007/02/20 
	訂正 |  ●概要  実数とは、Single、Double を言う。 ●方法 
	0 はZero とする。符号を決定。10進としての指数を以下のようにして10の対数を求めて決定する。
 Dim ex As Integer = GetDecPower(V) + 1           
	'10進指数を求める関数(下記)
 
仮数を、10進で、0.99999・・・999 の形式にする。vv = V * 10-exvv を正規化された整数 VL にする。Single   VL = CLng(vv * Base)                 
    (8桁の整数)
 Double  VL = CLng(vv * Base * Base)       
    (16桁の整数)
有効桁数にする。VL = (VL \ 10) * 10    末尾を切捨てる
配列にする。Single  Mant(0) = VL
 Double
 VL >= Base のとき
 Mant(0) = VL \ Base
 Mant(1) = VL Mod Base
 else
 Mant(0) = VL
 
指数部は ex とする 10進の指数を求める関数、Log10 の値を補正している。Double では、0.9999999999999999 = 1 
になってしまう弊害を補正している。 
	Friend Function GetDecPower(ByVal V As 
	Double) As IntegerDim p As Integer = Int(Math.Log10(V))
 Dim F As Double = 10 ^ p
 If V >= F Then
 Return p
 ElseIf V < F Then     '10n - ε 
	の場合の補正
 Return p - 1
 End If
 End Function
 |