Wurzel aus einer negativen Zahl? - Prüfwerte

Bei der Berechnung einer Wurzel ist der eingeschränkte Zahlenbereich, also Zahlen von größer als 0 (alle positiven Zahlen) zu beachten.

Die Wurzel aus einer negativen Zahl liefert uns NaN (Not a Number) als Rückgabewert, da die Wurzel aus einer negativen Zahl kein reelles Ergebnis liefert.

 

Hier ein Beispiel:

        static void Main(string[] args)
        {
            double a = -1;
            double b = Math.Sqrt(a);

            Console.WriteLine("Die Wurzel aus " + a + " ist " + b);
            Console.ReadLine();
        }

 

Ausgabe:

Die Wurzel aus -1 ist n.def. oder auch Die Wurzel aus -1 ist NaN

 

Nun, das ist natürlich nicht sehr schön, wenn solch ein Ergebnis ausgegeben wird.

Hier sollte man bereits beim Programmieren diese Möglichkeit in Betracht ziehen und diese Ergebnisse abfangen. Gleiches gilt z.B. auch für eine Division durch 0.

static void Main(string[] args)
{
  double a = -1;
  double b = Math.Sqrt(a);

  if (Double.IsNaN(b)) //Hier wird ein negatives Ergebnis abgefangen

    Console.WriteLine("Die Wurzel aus einer negativen Zahl liefert kein Ergebnis!");

  else Console.WriteLine("Die Wurzel aus " + a + " ist " + b);

Console.ReadLine();
}

 

Weiters gibt es noch:

Double.IsPositiveInfinity(b) //positiv unendlich

Double.IsNegativeInfinity(b) //negativ unendlich