вставка a с числом, превышающим 999

#.net #vb.net

#.net #vb.net

Вопрос:

я работаю над проектом, который вычисляет общую численность населения для заданных стран и ее в сотнях тысяч. И мне нужно вывести совокупность с , в соответствующих местах.
Например. население 123456789 мне нужно вывести его в поле списка как 123 456 789

итак, я ищу функцию преобразования или что-то встроенное, что принимает мое значение Dim population как int

и добавляет его соответствующим образом

     Lbxdata.Items.Add("----------------------------")

    Lbxdata.Items.Add(("Total Countries Selected " amp; countrycount))

    Lbxdata.Items.Add(("Total Population Selected " amp; (totalPopulation))

    Lbxdata.Items.Add("----------------------------")
  

это то, что у меня есть atm.

Комментарии:

1. сначала я бы преобразовал целое число в строку, а затем вставил запятую в соответствующее место. mid(string, 4,7) например, позволяет получить от 4-го до 7-го символа из строки

2. @yosukesabai Это не рекомендуемое решение в .net.

3. @CodeInChaos: я думаю, что это плохой ответ и в ‘vb’. я прочитал заголовок и написал ответ, не слишком задумываясь, интерпретировал его слишком буквально… или есть особая причина, помимо доступных методов форматирования?

4. Я говорил только о . net, потому что я понятия не имею, какие методы форматирования доступны в VB6.

Ответ №1:

Используйте строку.Формат для форматирования строк:

 Lbxdata.Items.Add(String.Format("Total Countries Selected {0:N0}", countrycount))

Lbxdata.Items.Add(String.Format("Total Population Selected {0:N0}", totalPopulation))
  

Ответ №2:

Вы должны отформатировать свой номер как

 value.ToString("0,0", CultureInfo.InvariantCulture)
  

Таким образом, ваш код может быть:

 Lbxdata.Items.Add("Total Countries Selected " amp; _
    countrycount.ToString("0,0", CultureInfo.InvariantCulture))
Lbxdata.Items.Add("Total Population Selected " amp; _
    totalPopulation.ToString("0,0", CultureInfo.InvariantCulture))
  

Смотрите документы здесь

Комментарии:

1. Я бы сказал, что это тот случай, когда не используется инвариантная культура. Что означает 123 031? это зависит от того, по какую сторону Атлантического океана вы живете. Не принимая это во внимание, является ли IMO ошибкой

Ответ №3:

Вы могли бы преобразовать свое целое число в строку или массив символов и просто вставлять запятую через каждые три цифры, начиная с Strin.length()-1 в обратном направлении, затем задать текстовый атрибут представления, используя эту строку.

Или преобразовать в строку и использовать String.Формат(«###,###»);