В результате все деления уравнений ниже цикл равен 0. Как я могу получить его, чтобы дать мне десятичную, например:Почему эти уравнения деления приводят к нулю?
297/315 = 0.30793650793650793650793650793651
Код:
using System;
namespace TestDivide
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i <= 100; i++)
{
decimal result = i/100;
long result2 = i/100;
double result3 = i/100;
float result4 = i/100;
Console.WriteLine("{0}/{1}={2} ({3},{4},{5}, {6})", i, 100, i/100, result, result2, result3, result4);
}
Console.ReadLine();
}
}
}
Ответ:
Спасибо Джон и все, это то, что я хотел бы сделать:
using System;
namespace TestDivide
{
class Program
{
static void Main(string[] args)
{
int maximum = 300;
for (int i = 0; i <= maximum; i++)
{
float percentage = (i/(float)maximum) * 100f;
Console.WriteLine("on #{0}, {1:#}% finished.", i, percentage);
}
Console.ReadLine();
}
}
}
+1. Это так просто;) – AnthonyWJones
Этот ответ получит от меня повышенный интерес, если он также объяснит * почему * это сработает; o) –
Код из вопросов не работает, потому что «/» - оператор, вызываемый с целыми аргументами, имеет целое число split.If любой из аргументов float или double, тогда «/» выполняет деление, которое вы ожидаете. : 0) – Lloyd