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

Hannes

Client
Регистрация
03.02.2016
Сообщения
501
Благодарностей
245
Баллы
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
Благодарностей
245
Баллы
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
Регистрация
11.11.2020
Сообщения
924
Благодарностей
377
Баллы
63
проси ИИ создать код для кубика зеннопостера или как отдельную процедуру. сейчас он тебе накидал код для консольного приложения C#
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
501
Благодарностей
245
Баллы
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)