Мне бы хотелось, чтобы функция выглядела следующим образом:
int GetDecimalPlaces(string format, IFormatProvider formatProvider = null);
Входные данные будут точно такими же, как те, которые могут быть законно переданы методам, отвечающим за форматирование чисел, например, double.ToString
, decimal.ToString
.
Вывод будет int
, указывающим наименьшее количество десятичных разрядов, требуемое для строки формата.
Итак, вот несколько примеров входов / выходов, которые я ожидаю (скажем, если оставить formatProvider
, так как null
приведет к использованию текущей культуры):
Input | Output
------|-------
N2 | 2
0 | 0
0.000 | 3
g | 0
0.0## | 1
Если возможно, я бы хотел сделать это «правильным» способом; т.е. без хаков. Но если взломать я должен, я был бы также признателен за хорошие предложения по взлому;)