Сегодня я играл со строками числового формата 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" значение? Есть ли способ получить то, что я хотел бы иметь?
Будь здоров, Бартош