[C#] Как отформатировать число с разделителями разрядов и сохранением десятичных знаков

Hannes

Client
Регистрация
03.02.2016
Сообщения
501
Благодарностей
246
Баллы
43
Здравствуйте!

Подскажите, пожалуйста, как отформатировать число с разделителями разрядов и сохранением десятичных знаков.

Кратко:
Как превратить число 3146574.02 в 3,146,574.02 используя С#?


В переменной есть 1 число из списка:
Код с оформлением (BB-коды):
145235.54
35366.87
46744
46574.02
3146574.02
и нужно сделать их такими:
Код с оформлением (BB-коды):
145,235.54
35,366.87
46,744
46,574.02
3,146,574.02
Пробовал ChatGPT, он предложил такой вариант (в зенке не сработал)
C#:
class Program
{
    static void Main()
    {
        // Исходное число
        double number = project.Variables["peremen"].Value;

        // Форматирование числа с использованием стандартного числового формата
        // "N" для добавления запятых как разделителей разрядов
        string formatted = FormatNumberWithCommas(number);

        // Вывод отформатированного числа
        Console.WriteLine(formatted);
    }

    static string FormatNumberWithCommas(double number)
    {
        // Форматирование с использованием стандартного числового формата "N"
        return number.ToString("N");
    }
}
Подскажите, пожалуйста, как исправить код и выполнить задачу.
 
Последнее редактирование:

pe4enkin

Client
Регистрация
12.04.2014
Сообщения
120
Благодарностей
82
Баллы
28
Исходное число нужно спарсить:
double number = double.Parse(project.Variables["peremen"].Value,System.Globalization.CultureInfo.InvariantCulture);
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
501
Благодарностей
246
Баллы
43
Спасибо за отклик! :dk:
Заменил, но не работает

C#:
class Program
{
    static void Main()
    {
        // Исходное число
        double number = double.Parse(project.Variables["peremen"].Value,System.Globalization.CultureInfo.InvariantCulture);

        // Форматирование числа с использованием стандартного числового формата
        // "N" для добавления запятых как разделителей разрядов
        string formatted = FormatNumberWithCommas(number);

        // Вывод отформатированного числа
        Console.WriteLine(formatted);
    }

    static string FormatNumberWithCommas(double number)
    {
        // Форматирование с использованием стандартного числового формата "N"
        return number.ToString("N");
    }
}
121094
 

pe4enkin

Client
Регистрация
12.04.2014
Сообщения
120
Благодарностей
82
Баллы
28
Просто создать c# код:


double number = double.Parse(project.Variables["peremen"].Value,System.Globalization.CultureInfo.InvariantCulture);
return number.ToString("N");
 
  • Спасибо
Реакции: Hannes

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
957
Благодарностей
387
Баллы
63
проси ИИ создать код для кубика зеннопостера или как отдельную процедуру. сейчас он тебе накидал код для консольного приложения C#
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
501
Благодарностей
246
Баллы
43
Ваши ответы помогли чуть лучше разобраться и составить код под задачу. Спасибо! :bt:

C#:
// Получаем значение переменной "peremen" как строку
string peremenValue = project.Variables["peremen"].Value;

// Парсим строку в число типа double, используя правильную культуру (InvariantCulture)
double number = double.Parse(peremenValue, System.Globalization.CultureInfo.InvariantCulture);

// Форматируем число в строку с нужным форматом "N2" для двух знаков после запятой и разделителем тысяч
string formattedNumber = number.ToString("N2", System.Globalization.CultureInfo.InvariantCulture);

// Возвращаем отформатированную строку
return formattedNumber;
Из числа 24435.5 делает 24,435.50.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)