Мне нужно отобразить валюту в моем приложении ASP.NET MVC, но когда валюта равна 0, я бы хотел, чтобы она отображала «Бесплатно» (конечно, локализовано!) Вместо 0,00 долларов США.
Поэтому, когда у меня есть что-то подобное...
Decimal priceFree = 0.00;
Decimal priceNotFree = 100.00;
priceFree.ToString("C");
priceNotFree.ToString("C");
Вывод: "0,00 долл. США" "100,00 долл. США"
Я бы хотел, чтобы это было "Бесплатно" "100 долларов США"
Я предполагаю, что для этого можно использовать метод .ToString(string format, IFormatProvider formatProvider), но я не уверен, как это сделать. Очевидно, я хочу повторно использовать как можно больше NumberFormatInfo и переопределять его только тогда, когда ввод равен 0. В этом случае я могу просто вернуть локализованный ресурс, содержащий мою строку «Free».
Итак, как мне это сделать?
Спасибо