0

文字列を小数点以下に変換せずに、小数点(小数点以下2桁)を文字列に追加するにはどうすればよいですか?

たとえば(Dim str1 as String)、str1の値に関係なく:100、100.0、100.00、または100.5、100.50 ...出力を取得したい:100.00または100.50、小数点以下2桁。

4

3 に答える 3

1
Public Function FormatNumber(ByVal s As String) As String
    Dim pos As Integer = s.IndexOf("."c)
    If pos = -1 Then ' No decimal point
        Return s & ".00"
    Else
        Return (s & "00").Substring(0, pos + 3)
    End If
End Function

そして、C#タグを挿入したので:

public string FormatNumber(string s)
{
    int pos = s.IndexOf('.');
    if (pos == -1) { // No decimal point 
        return s + ".00";
    } else {
        return (s + "00").Substring(0, pos + 3);
    }
}

ただし、余分な小数は切り捨てられることに注意してください。丸めは発生しません。

于 2012-01-17T13:27:48.320 に答える
0

まだコメントを追加できないので、追加の投稿を許してください...

lthibodeauxとdierreは正しいです。10進数に変換して戻す方がはるかに優れています。それ以外の場合は、文字列内の小数点を検索し、検出した場所に基づいて小数点を追加する関数を作成できます。問題は、「13.876」のようなstrを取得した場合です。文字列を丸める方法を理解する必要があります。

簡単なルートに行きます。

于 2012-01-17T13:27:42.690 に答える
0
Public Shared Function TwoDecimalString(input As String) As String
    Dim output As String
    Dim splittedInput As String() = input.Split("."C)
    If splittedInput.Length = 1 Then
        output = input & ".00"
    Else
        output = splittedInput(0) & "." & splittedInput(1).PadRight(2, "0"C)
    End If
    Return output
End Function
于 2012-01-17T13:29:57.913 に答える