Erweiterte Grundlagen - Variablentypen

In Grundlagen Teil 1 und Teil 2 wurden bereits die zwei Variablentypen int und string behandelt.
Int, welcher dem Speichern von Ganzzahlen und string, welcher dem Speichern von Texten (strings) dient.
In diesem Abschnitt werden wir uns nun mit weiteren Variblentypen befassen.

float und double

Bei float und double handelt es sich um Datentypen (Variablentypen), zum Speichern von Dezimalzahlen. Etwas mathematischer ausgedrückt, handelt es sich dabei um Datentypen, welche dem Speicher von Gleitkommazahlen dienen. Wem es näher interessieren sollte worum es sich bei Gleitkommazahlen handelt, möchte ich an den entsprechenden Wikipedia Artikel verweisen.
Diese beiden Datentypen unterscheiden sich in der Kapazität und Genaugikeit.

Wertebereich und Genauigkeit

Datentyp Gültiger Wertebereich Genauigkeit
float 1.5*10^-45 bis 3.4*10^38 7 stellig
double 5*10^-324 bis 1.7*10^308 15 bis 16 stellig

Die Verwendung dieser Variablentypen (Datentypen) ist identisch dem einer int Variable. Allerdings gilt es darauf zu achten, dass der Indikator für den Nachkommaanteil im Quellcode nicht ein Beistrich, sondern ein Punkt ist. Im Programmablauf selbst, sind auch Eingaben mit Beistrich erlaubt.
Die Deklaration (Definieren einer Variable) samt Initialsierung würde folgendermaßen aussehen.

float pi1 = 3.1415926535;
double pi2 = 3.1415926535;

Bei diesem Programmcodeauszug wurd eine float Variable mit dem Namen pi1 deklariert und mit PI bis auf die 10. Nachkommastelle initialisiert.
Identisch dem einer float Variable, wurde eine double Variable mit dem namen pi2 deklariert und ebenfalls mit PI bis auf die 10. Nachkommastelle initialisiert.

Übungsbeispiel float / double

Es ist offensichtlich, dass es sich mit float und double identisch arbeitet. Für dieses Übungsbeispiel verwenden wir double, da es für die meisten Anforderungen ausreichend ist.
Es gilt eine Rechner zu programmieren, welcher eine Division durchführt. Jedoch soll die Berechnung in einer anderen Klasse stattfinden. (Division durch 0 kann für das Beispiel ignoriert werden)

Angabe

Für die Lösung hier klicken. Bei Fragen und Problemen, bitte das Forum benutzen.

Lösung 1:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  double dividend = Convert.ToDouble(Console.ReadLine());
                  double divisor = Convert.ToDouble(Console.ReadLine());

                  Rechner meinRechner = new Rechner();
                  double ergebnis = meinRechner.Division(dividend,divisor);
                  Console.WriteLine(ergebnis);
                  Console.ReadLine();
            }
      }

      class Rechner
      {
            public double Division(double dividend, double divisor)
            {
                  return dividend/divisor;
            }
      }
}

Ganzzahl Datentypen mit und ohne Vorzeichen

Folgende Datentypen unterscheiden sich bei der Verwendung nicht von der einer int Variable, der Unterschied liegt im gültigen Wertebereich.

Gültige Wertebereiche mit Vorzeichen

Datentyp Gültiger Wertebereich
sbyte -128 bis 127
short -32.768 bis 32.767
int -2.147.483.648 bis 2.147.483.647
long –9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807

Gültige Wertebereiche ohne Vorzeichen

Datentyp Gültiger Wertebereich
byte 0 bis 255
ushort 0 bis 65.535
uint 0 bis 4.294.967.295
ulong 0 bis 18.446.744.073.709.551.615

Meist reicht es eine normale int Variable zu verwenden. In Fällen, bei dennen eine höherer Wertebereich benötigt wird, wird meist long eingesetzt. Deswegen wird in der Zukunft der Focus auf diese zwei Datentypen liegen.

char und string

Der Datentyp string wurde bereits im ersten Kapitel des Tutorials behandelt. Allerdings ist eine Ergänzung zum Vergleichen von strings notwendig. In ungünstigen Situationen kann es dazu führen, dass strings welche mit == verglichen werden ein falsches Ergebnis liefern. Aus diesem Grund empfiehlt es sich anstatt von == beim Vergleichen von strings, string.Equals(string) zu verwenden. String steht bei diesem Methodenaufruf für eine string Variable oder sonst etwas, dass einen string repräsentiert wie z.B.: "Text".

Ein Programmauszug würde folgendermaßen aussehen:

string zeichen1 ="Testtext";
string zeichen12 ="Testtext";
if(zeichen1.Equals(zeichen2))
{
      Code;
}

Neu hingegehen ist der Datentyp char, dieser dient dem Speichern eines Zeichens (Zeichenliterals). Die Verwendung ist ähnlich von string, jedoch erfolgt die Zuweisung eines Wertes nicht wie der einer string Variable. Bei char wird das Zeichen zwischen '' und nicht zwischen "" geschrieben. Es sei nochmal erwähnt, dass char nur ein Zeichen abspeichern kann und nicht mehrere. Mit einem char Array würden sich Wörter abspeichern lassen, indem jedes Feld ein Zeichen enthält. In älteren Programmiersprachen gab es den Datentyp string noch nicht, was es deutlich umständlicher macht mit Texten zu arbeiten.

Ein Programmauszug würde folgendermaßen aussehen:

char zeichenliteral = 'a';

bool

Der Datentyp bool ist recht simpel und kennt nur zwei Zuständie true und false. Wenn wir zurück denken an das Kapitel über die if - Abfragen, hatten wir true und false bereits behandelt. Dieser Datentyp dient dem Abspeichern von Zuständen.
Zum Beispiel könnte eine bool Variable auf true gesetzt werden, wenn eine Fehler auftritt welcher später behandelt werden soll. Dieses Vorgehen ist allerdings nur für kleinere Programme zu empfehlen.

Abschließend folgt noch ein Programmauszug:

bool zustand1 = true; bool zustand2 = false;