VB関数をVB.NETに移植しようとしていますが、関数を正しく動作させて正しく更新することができません。
rFormat = Format(Format(Value, fmt), String$(Len(fmt), "@"))
問題はString$()
、値の小数点を揃えるために使用される関数パラメーターにあるようです。これを適切に修正するにはどうすればよいですか、またはこれを達成する別の方法はありますか?
編集
以下は、私が抱えている問題を示すコンソールアプリケーションの例です。
Imports Microsoft.VisualBasic
Module Module1
Sub Main()
Dim rFormat As String
Dim fmt As String
Dim value As Object
fmt = "########.000"
value = 12345.2451212
'value = 12345
'~~~~~~~~~~~~~~~~~~~~~
'rFormat = Microsoft.VisualBasic.Format(Microsoft.VisualBasic.Format(value, fmt), "".PadLeft(fmt.Length, "@"c))
'Console.WriteLine(rFormat) ' <<Not working prints all "@" for any value!>>>
'rFormat = Microsoft.VisualBasic.Format(Microsoft.VisualBasic.Format(value, fmt), "".PadLeft(fmt.Length))
'Console.WriteLine(rFormat) '<<Not working prints nothing>>
'rFormat = (String.Format(value, fmt)).PadLeft(Len(fmt))
'Console.WriteLine(rFormat) ' <<Not working prints the value 12345.2451212>>> should print>>>>> 12345.245
'for integer values< works good>
rFormat = String.Format("{0," + fmt.Length.ToString + "}", String.Format(value, fmt))
Console.WriteLine(rFormat) ' <<Not working prints the value 12345.2451212>>> should print>>>>> 12345.245
'for integer values< works good>
End Sub
End Module