У меня есть форма, которая позволяет пользователю вводить цену, например, 10.00
.Преобразование строки в десятичный - оставить цифры
Однако в качестве формы пурпурного текста пользователь может ввести $10.00
или 10.00 for book
. Я не могу изменить пользовательский интерфейс, это нужно сделать под капотом. Так что, в основном, какие бывают типы использования, я просто хочу получить десятичный результат.
Я начал делать это
public decimal FilterPrice(dynamic price) {
string convertPrice=price.ToString();
var filterNumber=
from letter in convertPrice
where char.IsDigit(letter)
select letter;
return something;
}
Однако это полоса из .
. Есть идеи, как это сделать?
* Почему это не может быть сделано в пользовательском интерфейсе? Вы должны ограничить ввод в кратчайшие сроки, не позволяя пользователю вводить все, что захотите, а затем попытаться выяснить, что они означают. Что делать, если я использовал ваше приложение и набрал «10.00 foo 11 bar 1.1.10baz»? –
Честно говоря, я бы обрезал, удалил знак $ и, если он все еще недействителен, я бы выбрал исключение. –
Да, разрешая дополнительный ввод, он создает больше кода обработки ошибок для вас. Если вы можете фильтровать объем, прежде чем он будет работать более плавно и займет меньше времени. – Greg