Есть ли предел для спецификатора формата с фиксированной запятой? - PullRequest
0 голосов
/ 20 апреля 2020

Сегодня я играл со строками числового формата c и столкнулся с проблемой со спецификатором формата с фиксированной запятой (F).

Я хотел бы получить строковое представление числа с 100 цифрами после разделитель запятых. Для этого я использовал следующий код

int number = 100;
string stringRepresentation = string.Format("{0:F100}", number);
int length = stringRepresentation.Length;

Выход этого кода: "F1100" , а длина этой строки равна 5.

Однако, для 99 цифр он работает хорошо

int number = 100;
string stringRepresentation = string.Format("{0:F99}", number);
int length = stringRepresentation.Length;

Длина этой строки составляет 103, поэтому 3 цифры для числа 100, одна ди git для разделителя запятой и 99 цифр, как предполагается.

Я попытался установить число десятичных цифр для 100 с помощью следующего кода

var numberFormat = new NumberFormatInfo();
numberFormat.NumberDecimalDigits = 100;

, но у меня возникла исключительная ситуация " ArgumentOutOfRangeException Свойству задается значение, которое меньше 0 или больше 99.", как описано в документации.

Итак, я предполагаю, что верхний предел для цифр равен 99.

Итак, вопрос в том, прав ли я? Ограничение количества цифр 0-99? Почему тогда формат " F100 " не вызывает исключение, но это странное "F1100" значение? Есть ли способ получить то, что я хотел бы иметь?

Будь здоров, Бартош

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...