Das Ergebnis all der Teilungsgleichungen in der unten for-Schleife ist 0. Wie kann ich es mir eine Dezimalzahl zB zu geben, erhalten:Warum ergeben diese Division Gleichungen in Null?
297/315 = 0.30793650793650793650793650793651
Code:
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();
}
}
}
Antwort:
Dank Jon und jeder, das ist, was ich tun wollte:
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 ist so einfach;) – AnthonyWJones
Diese Antwort würde eine Verbesserung von mir bekommen, wenn es auch erklärt * warum * das würde funktionieren; o) –
Code von den Fragen funktioniert nicht, weil "/" - Operator mit ganzzahligen Argumenten aufgerufen wird Ganzzahl division.Wenn eines der Argumente float oder double ist, dann übernimmt "/" die Division, die Sie erwarten. : 0) – Lloyd