zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Hat der Parameter in dem Methodenaufruf den richtigen Typ?

Antwort:

Ja — also ist keine Konvertierung erforderlich.

Beispiele mit Gleitpunkttypen

Hier ist ein Programm, indem der zur Verfügung gestellte Parametertyp nicht dem geforderten Typ entspricht:

class CosBsp2
{

  public static void main ( String arg[] )
  {
    int z = 0;

    System.out.println( "Kosinus ist:" + Math.cos( z ) );
  }
}

In diesem Fall kann der 32 Bitwert in x in den erforderlichen 64 Bitwert ohne Datenverlust konvertiert werden, also macht es der Compiler automatisch.

Hier ist ein anderer Fall:

class CosBsp3
{

  public static void main ( String arg[] )
  {
    long w = 0;

    System.out.println( "Kosinus ist:" + Math.cos( w ) );
  }
}

Daten vom Typ long können in einen Typ double konvertiert werden, aber es kann zu einem Verlust an Genauigkeit kommen.

Auch in diesem Fall führt der Compiler die Konvertierung automatisch durch. (In diesem besonderen Fall findet kein Verlust an Genauigkeit statt, da 0 von beiden Typen exakt dargestellt werden kann. Aber allgemein kann es bei der Konvertierung von long zu double zu Genauigkeitsverlust kommen.)

FRAGE 10:

(Denkfrage:) Wird das folgende funktionieren?


class CosBsp4
{
  public static void main ( String arg[] )
  {
    long w = 0;

    System.out.println( "Kosinus ist:" + Math.cos( (double)w ) );
  }
}