Как использовать формат строки, чтобы пропустить точку, но оставить цифры - PullRequest
1 голос
/ 24 мая 2019

У меня есть строка формата ######.00, используемая для форматирования десятичных знаков в C #.Мне нужно изменить его так, чтобы он пропускал период, но оставлял цифры после периода.Могу ли я сделать это, просто изменив формат?Я искал, но не смог найти решение онлайн.

Я нашел этот ответ на очень похожий вопрос, но он включает умножение десятичной дроби на 100 перед форматированием,Я не могу манипулировать ни входящим числом, ни получающейся строкой, потому что у меня нет доступа к ним.Это потому, что мы используем функцию из сторонней библиотеки, которая выбирает число из другого места и отображает его в формате пользовательского интерфейса.Я могу предоставить только строку формата.(Если манипулирование числом или получающейся строкой является единственным способом получить его в формате, который мы, вероятно, можем сделать, это просто потребует значительного рефакторинга, поэтому я хотел посмотреть, есть ли сначала более простое решение. Отсюда и ограничения.)

В качестве примера нужного мне вывода рассмотрим следующий код:

var myFormat = "{0:######.00}";
Console.WriteLine(string.Format(myFormat, 1234.1234));
Console.WriteLine(string.Format(myFormat, 5));

Код, приведенный выше, в настоящее время выводит 1234.12 и 5.00, но я бы хотелнравится выводить 123412 и 500 просто путем изменения myFormat.Есть ли способ сделать это?

1 Ответ

1 голос
/ 24 мая 2019

Если вы можете изменить только строку формата, вероятно, нет возможности удалить точку.
Однако вы можете реализовать свой собственный Formatter , как пример MSDN.

string.Format(new CustomerFormatter(), "{0}", 1234.1234)
...