Вопрос

Кажется, что String.Format не форматирует строку в качестве входных данных.Я делаю что-то не так, или это просто родное поведение?

Вход :0,37

Это не работает.

string x = String.Format("{0:P}", myString)

Выход :0,37

Это так.

string x = String.Format("{0:P}", Convert.ToDecimal(myString))

Выход :37,00 %

Это было полезно?

Решение

Я считаю, что это ожидаемое поведение для «составного форматирования».

Ваш первый пример — попытка применить правила числового форматирования к строке.Второй пример — попытка применить правила числового форматирования к числу, которое может иметь десятичные позиции.

Видеть эта статья на MSDN Чтобы получить больше информации.

Другие советы

Параметр формата, который вы пытаетесь применить, работает только для чисел.В .NET нет концепции интеллектуальных строк, в которых CLR проверяет тип строки.

Я делаю что-то не так, или это просто родное поведение?

Это родное поведение.это в принципе не работа Format для интерпретации строкового ввода. Format предполагает, что пользователь предоставляет правильные данные — в вашем случае числовой данные.Строка не является числовой, даже если она представляет число (это важнейшее различие в CS между значением/семантикой и его представлением/синтаксисом!).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top