В настоящее время я пишу код для программы магазина в C#. Я относительно новым для C# и у меня возникли трудности в получении математику, чтобы работать в следующем фрагменте кода:Математические ошибки в C#
//Add Basket
public void addBasket()
{
//Add up the total of individual items
double total = 0;
if (shoppingCart.Count() == 0)
{
Console.WriteLine("ERROR - Basket is Empty");
}
else
{
foreach (Products tmp in shoppingCart)
{
total = (tmp.Price * tmp.BoughtStock);
Console.WriteLine("The cost of the individual item is: " + "\t" +total);
}
}
//Calculate the products together
double itemTotal = 0;
if (shoppingCart.Count() == 0)
{
Console.WriteLine("ERROR - Basket is Empty");
}
else
{
foreach (Products tmp in shoppingCart)
{
itemTotal = (tmp.Price * tmp.BoughtStock);
itemTotal = itemTotal + total;
Console.WriteLine("The cost of the items together is: \t" +itemTotal);
}
//Calculate VAT
double vatPrice = total * .21;
double netPriceBeforeDiscount = total + vatPrice;
//calculate discount: if total cost of shop is over 25 give 10% discount.
if (netPriceBeforeDiscount >= 25)
{
double reducedPrice = netPriceBeforeDiscount * .10;
double netPrice = netPriceBeforeDiscount - reducedPrice;
reducedPrice = Math.Round(reducedPrice, 2);
netPrice = Math.Round(netPrice, 2);
Console.WriteLine("Discount*:\t\t\t\t " + reducedPrice);
Console.WriteLine("\nTotal Net Cost (including VAT and discounts):\t Euro " + netPrice);
}
else
{
double netPrice = Math.Round(netPriceBeforeDiscount, 2);
}
}
}
Первая часть кода работает правильно, как и в том, что он добавляет любые продукты в корзине и отображает там цены отдельно, проблема возникает во второй части, добавляя элементы в цены корзин вместе. Как вы можете видеть на выходе http://gyazo.com/1656eecc689b7a9d0bfc47b8480169a6 (мне нужно связать скринкап вывода, поскольку я не знаю, как показать вывод с C# здесь). Он отображает общее количество первого элемента, второго элемента, а затем правильно добавляет его два результата вместе, хотя я не знаю, почему он отображает стоимость второго предмета, умноженного на два. Наконец, как вы можете видеть внизу кода, я написал то, что, по моему мнению, является правильным способом получения НДС и отображения массовой скидки, но из ссылки выше, когда я использую два элемента, код не будет вычислять или отображать НДС или наличный дисконт еще с одним товаром в корзине, см. Здесь> (* Ссылка № 1 Ниже здесь *). Опять же, из того, что я себе представляю, является ошибка, приводящая к тому, что другие части кода не работают должным образом, когда я делаю только один элемент, несмотря на то, что правильно вычисляет ват и объемные скидки и отображает правильный ответ, он умножает стоимость отдельных предметов на сумму о продукте, который я купил, см. здесь> (* Ссылка № 2 Ниже здесь *)
Как я уже сказал, но я новичок в этом и хорошо не очень хорош на C#, но любая помощь будет очень признательна, и если вам потребуется что-нибудь от меня, просто спросите, спасибо
Редактировать *: Только что понял, мне нужно 10 репутации, чтобы разместить более двух ссылок, я свяжу 2 недостающих ссылки в комментариях ниже.
Ссылка номер 1> http://gyazo.com/cd9b1a3b6f995e9f155d7897a8e67a8a – JasonL95
Ссылка номер 2> http://gyazo.com/3f51fa4d4b607dd9997c18e5aaac79ac – JasonL95
Помимо всего прочего - не использовать 'double' для денежных значений - используйте' десятичную '. –