小数以下d桁のフォーマット
Function Fmt$(r! As Double, d As Integer) As String
r! を nnn.ddd の文字列に変換する。
d は少数以下の桁数
d=0 で小数点を含む形式に変換
d=-1 で小数点を除く整数形式に変換
Function Fmt$(r! As Double, d As Integer) As String
Dim buff As String
Dim buf1 As String
Dim buf2 As String
Dim E As Long
Dim D As Long
buff = Str$(r!)
CharLower(buff)
E = InStr(1,buff,"e")
If E Then
D = E - 1
If r! > 0 Then
If E > 16 Then D = 16
Else
If E > 17 Then D = 17
End If
buf1 = Left$(buff,D)
buf2 = Mid$(buff,E+1)
Fmt$ = buf1 + "e" + buf2
Exit Function
Else
If r! > 0 Then
D = Int(Log(r!)/Log(10))+1
Else
D = Int(Log(Abs(r!))/Log(10))+2
End If
E = d
If d < 0 Then E = 0
If r! > 0 Then
buff = Str$(r! + 5*0.1^(d+1))
Else
buff = Str$(r! - 5*0.1^(d+1))
End If
If d < -1 Then E = -1
If D < 1 Then
D = E + 2
Else
D = D + E + 1
End If
If Len(buff)<D Then D=Len(buff)
Fmt$ = Left$(buff,D)
Exit Function
End If
End Function
数値フォーマッティング
対応Val関数
この関数でのフォーマットは、桁数が多い場合は指数形式に変換されるが、指数形式の数値への変換は、下記を使用できる。
hira's AB Sample Codes
http://hira.hopto.org/absample1.htm#Shisuu
hira's AB Sample Codes
http://hira.hopto.org/absample1.htm#Shisuu