Я ищу для String.Format()
спецификатора в .NET Framework, который позволит это:String.Format для конкретного случая использования
- Для значений в диапазоне от 0 до 1, ведущего числа (0 или 1), десятичный разделитель и три цифры после, например. 0,995, 1,000, 0,015
- в диапазоне от 0 до 100, два десятичных разряда: 0,00, 5,46, 10,0
- в диапазоне от 100 до 10000, без каких-либо знаков после запятой: 543, 886, 2576
По существу, мне кажется, нужны четыре значащие цифры, где десятичные знаки появляются только в том случае, если число очень мало. Ни один из моих выходов не имеет отрицательных значений. EDIT: Мне нужно избегать научной нотации.
Есть ли спецификатор формата, который может дать мне что-то близкое к этому? Или, альтернативно, регулярное выражение, которое будет модифицировать строку с двойной точностью (например, «43667.73625003946255») для ее создания?
Немного nitpick, но только для того, чтобы убедиться: мы должны просто идти по вашим примерам? Четыре значащие цифры приведут к 0.9950 и 10.00 и т. Д. Ваши примеры имеют различное количество значимых цифр. –
Вы используете _need_ одну строку формата или можете ли вы реализовать ее в пользовательском 'IFormatProvider'? –
Да, по моим примерам. Для разных диапазонов требуются разные значащие цифры. Я бы хотел, чтобы он был в единственном формате, если это возможно; Передние концы XAML будут использовать его, и я хотел бы указать форматирование в синтаксисе привязки. Если привязки могут указывать 'IFormatProvider', я буду использовать это, хотя! –