tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: tostringを改良したい
投稿日: 2012/08/14(Tue) 15:53
投稿者しげちん
早速のコメントありがとうございます.

FormatNumberを使うと
2つの数値を区切る際に 
Debug.Print (FormatNumber(x,3) & "   " & FormatNumber(y,4))
というように「"   " &」を余分に書かねばならないので,
できれば.ToStringF(a,b)というメソッドの改良の方法を教えてくださいませんでしょうか?
(この方法だと,出力する数値全体の長さよりも大きなaを指定しておけば勝手に空白が入るので,
空白を部分の記述を省くことができます)

今のところ,末尾のような関数を作って
Debug.Print (format1(x,10,3) & format1(y,14,3))
のようにしているのですが,メソッドを改良する方法で同じことは実現できないかと思い
質問しました.
初心者には難しい作業なのかもしれませんが,よろしくお願い致します.


  Function format1(ByVal a As Double, ByVal b As Integer, ByVal c As Integer)
    'format number "a":フォーマットを併せる
    'b : length of number including decimal point
    'c : length of decimal place
    Dim fm$ = "", st$
    Dim nl As Integer

    Select Case c
      Case Is > 0       'decimal
        fm$ = "##0."
        For i = 1 To c
          fm$ = fm$ + "0"
        Next i
      Case 0           'long
        fm$ = "##0"
    End Select
    st$ = Format(a, fm$)

    nl = Len(st$)   'length of a
    If nl < b Then
      For i = 1 To b - nl  'add space
        st$ = " " + st$
      Next i
    ElseIf nl > b Then    'delete upper digit
      st$ = Mid$(st$, nl - b + 1, b)
    End If
    format1 = st$

  End Function

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。