Вот есть у меня класс Pocket, в котором есть поле Cash. Какой тип мне стоит использовать для отображения денег в этом кошельке? Есть ли какой-то тип в C#, который автоматически округляет значение до 2х знаков после запятой и отображает денежные средства?
Чем больше вмещает в себя тип данных, тем лучше его использовать для отображения валюты.
Типа данных, который автоматически будет округлять значение до 2-х знаков после запятой, учитывая конвертацию валют и тд - не существует.
Для записи денежных средств как правило используется тип decimal. Так как decimal это 16-байтовый тип, он является самым большим (вместительным) примитивным типом данных, что обеспечивает минимальные неточности при округлении.
Для того что б вывести число с 2 знаками после запятой, нужно написать следующее:
Console.WriteLine("How much money you have in your pocket?"); Pocket pk = new Pocket(); pk.Cash = Convert.ToDecimal(Console.ReadLine());Console.WriteLine(string.Format(CultureInfo.CreateSpecificCulture("en-us"), "You have {0:C2}", pk.Cash)); Console.ReadKey();</pre>
Если что, CultureInfo находится в прострастве имён System.Globalization