ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 07:32

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - 数値フォーマッティング
作成者 メッセージ
  記事の件名:  対応Val関数  引用付きで返信する
この関数でのフォーマットは、桁数が多い場合は指数形式に変換されるが、指数形式の数値への変換は、下記を使用できる。

hira's AB Sample Codes
http://hira.hopto.org/absample1.htm#Shisuu
投稿記事 Posted: 2007年5月12日(土) 13:43
  記事の件名:  数値フォーマッティング  引用付きで返信する
小数以下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
投稿記事 Posted: 2007年5月12日(土) 13:35

全ての表示時間は UTC+09:00 です


ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean