lcValue = Format(tnValue, lcFormat) + "$"
which is using the legacy Microsoft.VisualBasic.Strings stuff. I don't really remember how that worked but I think it translates based on the Windows locale rather then the .NET current culture. Why not just use the .NET .ToString() methods e.g.:Public Function GetFormatValueDollar(ByVal tnValue As Double, ByVal nLanguage As Integer) As String >> Dim info As CultureInfo >> Select Case nLanguage >> Case 1 >> info = New CultureInfo("en-US") >> Case Else >> info = New CultureInfo("fr-CA") >> ' If you want different separators: >> info.NumberFormat.CurrencyDecimalSeparator = "." >> info.NumberFormat.CurrencyGroupSeparator = "," >> >> End Select >> Return tnValue.ToString("c", info) >> End Function>
Public Function GetFormatValueDollar(ByVal tnValue As Double, ByVal nLanguage As Integer) As String Dim info As New CultureInfo("en-US") Select Case nLanguage Case 1 Case Else info.NumberFormat.CurrencyPositivePattern = 1 End Select Return tnValue.ToString("c", info) End Function