Integrale en zwevende kommanummers bewerken
In deze zelfstudie leert u interactief over de numerieke typen in C# met behulp van uw browser. U schrijft C# en ziet de resultaten van het compileren en uitvoeren van uw code. De gids bevat een reeks lessen die informatie biedt over getallen en wiskundige bewerkingen in C#. In deze lessen krijgt u uitleg over de basisprincipes van de computertaal C#.
Tip
Als u een codefragment in de focusmodus wilt plakken, moet u de sneltoets (Ctrl + v of cmd + v) gebruiken.
Wiskunde verkennen met gehele getallen
Voer de volgende code uit in het interactieve venster. Selecteer de knop Focusmodus invoeren. Typ vervolgens het volgende codeblok in het interactieve venster en selecteer Uitvoeren:
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
Als u aan uw omgeving werkt, moet u in plaats daarvan de instructies voor de lokale versie volgen.
U hebt een van de fundamentele wiskundige bewerkingen met gehele getallen gezien. Het type int
geeft een positief of een negatief geheel getal weer. U gebruikt het symbool +
als toevoeging. Andere veelgebruikte wiskundige bewerkingen voor gehele getallen zijn onder meer:
-
voor aftrekken*
voor vermenigvuldigen/
voor delen
Tip
In deze interactieve zelfstudie kunt u zelf verkennen door de code te wijzigen die u in het interactieve venster hebt geschreven. Deze zelfstudie bevat voorbeelden die u bij elke stap kunt proberen.
Begin bij het verkennen van die verschillende bewerkingen. Wijzig de eerste regel om deze bewerkingen te proberen. Selecteer na elke bewerking de knop Uitvoeren .
Subtraction (aftrekken):
int c = a - b;
Multiplication (vermenigvuldiging):
int c = a * b;
Delen:
int c = a / b;
U kunt ook experimenteren door meerdere wiskundige bewerkingen in dezelfde regel te schrijven, als u dat wilt.
Tip
Bij de verkenning van C# (of elke andere programmeertaal) zult u fouten maken bij het schrijven van code. Het compileerprogramma vindt deze fouten en meldt deze aan u. Wanneer de uitvoer foutberichten bevat, dient u zorgvuldig de voorbeeldcode en de code in het interactieve venster na te kijken om te zien wat u moet herstellen. Deze oefening helpt u om inzicht te krijgen in de structuur van C#-code.
De volgorde van bewerkingen verkennen
Met de computertaal C# wordt de prioriteit gedefinieerd van verschillende wiskundige bewerkingen met regels die overeenkomen met de regels die u bij wiskunde hebt geleerd. Vermenigvuldigen en delen gaan voor op optellen en aftrekken. Bekijk dit wat nader door de volgende code in het interactieve venster uit te voeren:
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
De uitvoer laat zien dat vermenigvuldigen vóór optellen is uitgevoerd.
U kunt een andere bewerkingsvolgorde opleggen door haakjes te plaatsen rond de bewerking(en) die u het eerst wilt laten uitvoeren:
int a = 5;
int b = 4;
int c = 2;
int d = (a + b) * c;
Console.WriteLine(d);
Ontdek meer door veel verschillende bewerkingen te combineren. Vervang de vierde regel hierboven door iets zoals volgt:
int d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Er is u misschien al bijzonder gedrag opgevallen ten aanzien van gehele getallen. Het delen van gehele getallen levert altijd een resultaat met een geheel getal op, zelfs wanneer u zou verwachten dat het resultaat een decimaal of een breuk zou bevatten.
Als u dit gedrag niet hebt gezien, probeert u de volgende code:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
Selecteer Opnieuw uitvoeren om de resultaten weer te geven.
De precisie en beperkingen van gehele getallen ontdekken
In het laatste voorbeeld hebt u gezien dat met het delen van gehele getallen het resultaat wordt afgekapt.
U kunt de rest ophalen met behulp van de restoperator , het %
teken:
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
Het soort geheel getal in C# verschilt op nog een ander vlak van de wiskundige gehele getallen: het type int
heeft minimum- en maximumlimieten. Voer deze code uit om deze limieten te zien:
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
Als een berekening een waarde oplevert die deze limieten overschrijdt, hebt u een negatieve overloop- of overloop-situatie. Het antwoord lijkt alles van de ene naar de andere limiet te omvatten. Voeg deze twee regels toe aan het interactieve venster om een voorbeeld te zien:
int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");
U ziet dat het antwoord erg dicht bij het minimale (negatieve) gehele getal ligt. Het staat gelijk aan min + 2
.
De optelbewerking heeft de toegestane waarden voor gehele getallen overschreden.
Het antwoord is een erg groot negatief getal, omdat een overloop alles omvat van het hoogst mogelijke tot het laagst mogelijke gehele getal.
Er zijn andere numerieke soorten met afwijkende limieten en precisie, die u zou kunnen gebruiken in het geval dat het type int
niet aan uw behoeften voldoet. Laten we deze typen getallen eens bekijken.
Werken met het dubbele type
Het numerieke type double
geeft een drijvendekommagetal met dubbele precisie weer. Misschien bent u onbekend met deze termen. Een drijvendekommagetal is nuttig, omdat dit niet-gehele getallen weergeeft die qua magnitude zeer groot of zeer klein zijn. Dubbele precisie is een relatieve term die de getallen van binaire cijfers beschrijft die worden gebruikt om de waarde op te slaan. Dubbele precisienummers hebben twee keer het aantal binaire cijfers als enkelvoudige precisie. Op moderne computers is het gebruikelijker om getallen met dubbele precisie te gebruiken dan getallen met enkele precisie. Enkelvoudige precisienummers worden gedeclareerd met behulp van het float
trefwoord.
Laten we dit nader bekijken. Voer de volgende code in het interactieve venster in en bekijk het resultaat:
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
U ziet dat het antwoord het decimale gedeelte van het quotiënt bevat. Voer ook eens een iets gecompliceerdere expressie met dubbele cijfers in:
double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);
Het bereik van een dubbele waarde is veel groter dan de waarden van gehele getallen. Voer de volgende code eens in het interactieve venster in:
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");
Deze waarden worden afgedrukt in een wetenschappelijke notatie. Het getal links van de E
is de significant. Het getal rechts is de exponent, als macht van 10.
Dubbele cijfers in C# kunnen, net als bij decimale getallen in wiskunde, afrondfouten vertonen. Probeer deze code:
double third = 1.0 / 3.0;
Console.WriteLine(third);
Je weet dat dat 0.3
is 3/10
en niet precies hetzelfde als 1/3
. Op dezelfde manier is 33/100
het 0.33
. Dat is dichter bij 1/3
, maar nog steeds niet precies.
Uitdaging
Probeer andere berekeningen met grote getallen, kleine getallen, vermenigvuldiging en deling met behulp van het double
type. Probeer meer gecompliceerde berekeningen.
Werken met decimale typen
U hebt de elementaire numerieke typen gezien in C#: gehele getallen en dubbele cijfers. Er is nog één ander type om te leren: het decimal
type. Het type decimal
heeft een geringer bereik, maar een grotere precisie dan double
. Laten we eens een kijkje nemen:
decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
U ziet dat het bereik geringer is dan die van het type double
. U ziet de grotere precisie van het decimale type zien als u de volgende code invoert:
double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);
U ziet dat de rekensom die gebruikmaakt van het decimale type over meer decimalen aan de rechterkant van de decimale komma beschikt.
Met het achtervoegsel M
bij de getallen geeft u aan dat een constante het type decimal
behoort te gebruiken. Anders gaat de compiler ervan uit dat het double
type is.
Notitie
De letter M
is gekozen als de meest visueel afzonderlijke letter tussen de double
en decimal
trefwoorden.
Uitdaging
Schrijf, nu u de verschillende numerieke typen hebt gezien, code waarmee het oppervlak van een cirkel wordt berekend waarvan de straal 2,5 cm is. Denk eraan dat het oppervlak van een cirkel wordt bepaald door de straal in het kwadraat vermenigvuldigd met pi. Een hint: .NET bevat een constante voor PI, Math.PI, die u kunt gebruiken voor die waarde. Math.PI, zoals alle constanten die in de System.Math
naamruimte zijn gedeclareerd, een double
waarde is. Daarom moet u in plaats van decimal
waarden voor deze uitdaging gebruikendouble
.
U zou een antwoord moeten krijgen tussen 19 en 20.
Uitdaging voltooien
Kreeg u ook deze uitkomst?
double radius = 2.50;
double area = Math.PI * radius * radius;
Console.WriteLine(area);
Probeer ook eens enkele andere formules.
Gefeliciteerd
U hebt de interactieve zelfstudie 'Getallen in C#' voltooid. U kunt de koppeling Branches en lussen hieronder selecteren om de volgende interactieve zelfstudie te starten, of u kunt de .NET-site bezoeken om de .NET SDK te downloaden, een project op uw computer te maken en codering te behouden. In de sectie Volgende stappen gaat u terug naar deze zelfstudies.
In de volgende artikelen vindt u meer informatie over getallen in C#:
Is er een probleem met deze sectie? Als dit het geval is, kunt u ons feedback geven zodat we deze sectie kunnen verbeteren.