El resultado de todas las ecuaciones de división en el siguiente bucle for es 0. ¿Cómo puedo conseguir que me da un ejemplo decimales:¿Por qué estas ecuaciones de división resultan en cero?
297/315 = 0.30793650793650793650793650793651
Código:
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();
}
}
}
Respuesta:
Gracias Jon y todo el mundo, esto es lo que quería hacer:
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. Es así de simple;) – AnthonyWJones
Esta respuesta me daría un voto positivo si también explicara * por qué * esto funcionaría; o) –
El código de las preguntas no funciona porque "/" - el operador al que se llama con números enteros hace números enteros división. Si alguno de los argumentos es flotante o doble, entonces "/" hace la división esperada. : 0) – Lloyd