文字列を小数点以下に変換せずに、小数点(小数点以下2桁)を文字列に追加するにはどうすればよいですか?
たとえば(Dim str1 as String)、str1の値に関係なく:100、100.0、100.00、または100.5、100.50 ...出力を取得したい:100.00または100.50、小数点以下2桁。
文字列を小数点以下に変換せずに、小数点(小数点以下2桁)を文字列に追加するにはどうすればよいですか?
たとえば(Dim str1 as String)、str1の値に関係なく:100、100.0、100.00、または100.5、100.50 ...出力を取得したい:100.00または100.50、小数点以下2桁。
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);
}
}
ただし、余分な小数は切り捨てられることに注意してください。丸めは発生しません。
まだコメントを追加できないので、追加の投稿を許してください...
lthibodeauxとdierreは正しいです。10進数に変換して戻す方がはるかに優れています。それ以外の場合は、文字列内の小数点を検索し、検出した場所に基づいて小数点を追加する関数を作成できます。問題は、「13.876」のようなstrを取得した場合です。文字列を丸める方法を理解する必要があります。
簡単なルートに行きます。
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