Число имеет такой формат, только когда оно представляется пользователю в виде строки. До этого это просто число.
Метод .ToString
может принимать параметр, который сообщает ему, какую культуру использовать для форматирования.
Мы можем воспользоваться этим, используя существующий Культура и изменение его, чтобы использовать апостроф в качестве десятичного разделителя:
Option Strict On
Imports System.Globalization
Module Module1
Public Function BytesToMegabytes(Bytes As Long) As String
'This function gives an estimate to two decimal
'places. For a more precise answer, format to
'more decimal places or just return dblAns
Dim dblAns As Double = (Bytes / 1024) / 1024
Dim ci = New CultureInfo("en-GB")
ci.NumberFormat.NumberDecimalSeparator = "'"
Return dblAns.ToString("###,###,##0.00", ci)
End Function
Sub Main()
Console.WriteLine(BytesToMegabytes(123445568999))
Console.ReadLine()
End Sub
End Module
Выходы:
117,726'87
Вы, вероятно, знаете код для культуры, которую вы хотите использовать, поэтому, если вы используете это вместо «en-GB», тогда не будет необходимости устанавливать NumberDecimalSeparator.
Если вы не хотите использовать запятые для группировки номеров, добавьте
ci.NumberFormat.NumberGroupSeparator = ""
Обратите внимание, что тип Long
, вероятно, лучше, если вы имеете дело с байтами. Тип возвращаемого значения из функции должен быть таким же, как в объявлении: использование Option Strict On
поможет вам в подобных вещах, и вы должны установить его как значение по умолчанию для нового VB. NET проекты.
Ссылка: NumberFormatInfo Class