У меня есть список, который содержит два столбца, которые являются валютой типа. Я хочу иметь возможность читать значения из этого поля с десятичными знаками и включенным символом курсора.Получение значений позиции списка валют
Я пробовал три разных метода, но я только, кажется, получаю цифры, а не курчавый символ. Также десятичные значения не отображаются должным образом. Столбцы, которые используют десятичный тип, это «InstallCosts» и «RentalCosts».
foreach (SPListItem item in listItemCollection)
{
try
{
string MPLS;
if ((bool)item["MPLS"])
MPLS = "Yes";
else
MPLS = "No";
//Conversion 1
double installCost;
bool convert1 = double.TryParse(item["InstallCosts"].ToString(), out installCost);
double rentalCost;
bool convert2 = double.TryParse(item["RentalCosts"].ToString(), out rentalCost);
//Conversion 2
string install = item["InstallCosts"].ToString();
double installConverted = double.Parse(install, NumberStyles.Currency,
CultureInfo.CurrentCulture.NumberFormat);
//Conversion 3
//string converThis = String.Format("[0:c}", (string)item["InstallCosts"]);
string results56 = (string)item["Title"] + " " + (string)item["DefinedFor"] + " " +
"<b>MPLS:</b> " + MPLS + "<br/>" + "<b>Max Downstream:</b> " +
(string)item["MaxDownstream"] + "<br/>" + "Install Cost:" + converThis + "<br/>"
+ "Rental Cost (p.a.):" + rentalCost + "<br/>";
AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(results56));
}
В результате получается следующее:
Альпака Грязный ADSL продукт для: CCTV сторонних удаленного доступа интерактивные модели и веб-сайт тестирования. MPLS: Нет Max Downstream: Установить Стоимость: 50 Стоимость аренды (в год): 425,7
The resuts для "Установить стоимость" должна быть: £ 50,00 Результат для "Стоимость аренды" должно быть: £ 425,70
Я застрял с этой проблемой в течение дня, буду признателен за любую помощь, возможно, что-то мне не хватает, но я не могу понять, что!
Большое спасибо,
Никогда не используйте double для валюты, вы начнете видеть тонкие потери из-за точности обработки. Используйте только десятичное значение. – OmegaMan
'double less = 0.3; double more = 0,4; двойной diff = 0,1; вернуться больше - меньше == diff; // false! ' – ANeves