У меня есть этот код для моей проблемы. Я почти нахожусь для некоторых тестов, я получаю несколько разные результаты. Как вы увидите, переменная c должна быть «десятичной». Однако при умножении его на переменную «n». В этом заключается проблема:C# decimal, ulong, вычислительные величины
Ваша задача - написать программу для расчета количества тортов, которые Ivancho может сделать в этот день, и цены за торт. Вам будут даны некоторые цифры. Количество тортов Ivancho хочет в этот день, килограммы муки необходимо сделать один пирог, килограммы муки, которые поставщик может вам дать, количество трюфелей вы можете купить и цену за каждый трюфель. Если у Ivancho достаточно муки, чтобы сделать количество пирожных, которые он хочет, он сделает именно этой суммы, оставшаяся мука будет отброшена, и вы должны напечатать на консоли «Все доступные продукты, цена на пирог: {цена одного пирога }». В качестве альтернативы, если муки недостаточно, вы должны округлить количество тортов, которые могут быть изготовлены на целое число, и распечатать их на консоли в формате «Можно изготовить только {количество тортов, которые могут быть изготовлены) торты, необходимо {килограмм муки необходимо} кг больше муки ", где нужны килограммы муки, - это разница между килограммами муки , необходимыми для того, чтобы сделать количество тортов, которые хотел Иванчо, и килограммы муки. Вход Входные данные следует считывать с консоли. Он состоит из пяти входных значений, каждый на отдельной строке: • Количество n - количество тортов, которое хочет Ivancho. • Количество c - килограммов муки, необходимых для приготовления одного пирога. • Число f - килограммов муки. • Число t - количество доступных трюфелей. • Номер p - цена одного трюфеля.
Если муки недостаточно, чтобы сделать количество тортов, Ivancho хочет напечатать на консоли: o «Можно сделать только {количество тортов, которые могут быть изготовлены) торты, необходимо {килограмм муки} кг больше муки " Если муки достаточно: Количество тортов, которые могут быть изготовлены, должно быть целым числом; цена пирога и килограммы необходимой муки должны быть округлены до двух цифр после десятичной точки. Ограничения Число n будет действительным целым числом в диапазоне [1 ... 18 446 744 073 709 551 615] Число c будет числом с плавающей запятой в диапазоне [0 ... 7.9 x 1028]. Числа f, t и p будут действительными целыми числами в диапазоне [0 ... 4 294 967 295]. с использованием системы; с использованием System.Collections.Generic; с использованием System.Linq; с использованием System.Text; с использованием System.Threading.Tasks;
namespace CakeTycoon
{
class Program
{
static void Main(string[] args)
{
var n = ulong.Parse(Console.ReadLine()); // amount of cakes George wants
var c = decimal.Parse(Console.ReadLine()); // kg of fllour needed to make 1 cake
var f = uint.Parse(Console.ReadLine()); // kg of flour available
var t = uint.Parse(Console.ReadLine()); // amount of truffles available
var p = uint.Parse(Console.ReadLine()); // price of one truffle
var truffelCost = t * p; // total price of truffles
var cakesCanBeMade = Math.Floor(f/c);
var cakePrice = (truffelCost/n) * 1.25;
var flourNeeded = 0.00;
var totalFlour = n * c;
if (cakesCanBeMade >= n)
{
Console.WriteLine("All products available, price of a cake: {0}", cakePrice);
}
else if (cakesCanBeMade < n)
{
flourNeeded = totalFlour - f ;
Console.WriteLine("Can make only {0} cakes, need {1}kg more flour", cakesCanBeMade,flourNeeded);
}
}
}
}
Привет, может быть, вы можете точечную проблему немного более – Stefan
Что вы хотите? Может быть вам нужно определить тип insted var или использовать класс System.Convert – askeet
Я использовал это сейчас, и он работает .. изменил имя переменных тоже ... ulong truffleCost = (ulong) трюфели * trufflePrice; – user3376064