Ik ben als hobby-project bezig met het schrijven van een plotter van functies in C#, daarvoor maak ik gebruik van de meest recente versies van Mono en MonoDevelop in Linux Mint 12.
Ik ben op dit moment bezig met de code die het daadwerkelijke plotten doet, en ik kom iets behoorlijk vreemds tegen:
In bovenstaande code zijn xVariable.Value, xMin, x, width en xRange allemaal doubles.
Toch returnt x / width (met x = 1 en width = 600) een long: 0, zoals je kunt zien in de screenshot.

Ik heb zelf altijd geleerd dat als minstens 1 van de 2 getallen een double is, het resultaat van de deling ook een double wordt. Alleen als beiden int/long zijn, krijg je een int/long resultaat. Heb ik dit fout geleerd?
Ik ben op dit moment bezig met de code die het daadwerkelijke plotten doet, en ik kom iets behoorlijk vreemds tegen:
C#:
1
| xVariable.Value = xMin + ((x / width) * xRange); |
In bovenstaande code zijn xVariable.Value, xMin, x, width en xRange allemaal doubles.
Toch returnt x / width (met x = 1 en width = 600) een long: 0, zoals je kunt zien in de screenshot.

Ik heb zelf altijd geleerd dat als minstens 1 van de 2 getallen een double is, het resultaat van de deling ook een double wordt. Alleen als beiden int/long zijn, krijg je een int/long resultaat. Heb ik dit fout geleerd?