problem z double liczba = 0.0

0

Witam,
Może problem ten pojawiał się już nie raz , w każdym razie jakoś nie mogę znalezc odpowiedzi na ten prosty przykład, a mianowicie chodzi iż cały program działa po usunięciu "= 0.0" z deklaracji.

Jakby ktoś był tak uprzejmy to proszę o pomoc :)

public class AverageFruit {
public static void main(String args[]) {
// Declare and initialize three variables
double numOranges = 50.0E-1;
double numApples = 1.0E1;
double averageFruit = 0.0;

   averageFruit = (numOranges + numApples) / 2.0;    

   System.out.println("A totally fruity program");
   System.out.println("Average fruit is " + averageFruit);
}

}

Rezultat :

An unexpected error has been detected by HotSpot Virtual Machine:

EXCEPTION_FLT_DIVIDE_BY_ZERO (0xc000008e) at pc=0x00c5a883, pid=2596, tid=2316

  1. Java VM: Java HotSpot(TM) Client VM (1.4.2_12-b03 mixed mode)
  2. Problematic frame:
  3. j com.sun.tools.javac.v8.comp.Items$ImmediateItem.isPosZero(D)Z+0

  1. An error report file with more information is saved as hs_err_pid2596.log

  1. If you would like to submit a bug report, please visit:
  2. http://java.sun.com/webapps/bugreport/crash.jsp

Errors compiling AverageFruit.

0

Kod, który podałeś wygląda mi na niezgodny z orginałem. Patrząc na treść błędu EXCEPTION_FLT_DIVIDE_BY_ZERO można prosto wywnioskować, że wykonujesz dzielenie przez 0.

0

Niestety kod jest poprawny z ksiazki , zreszta jest to jeden z wielu , w ktorym pojawia sie taki blad.
Jak widac żadnego dzielenia przez 0 tam nie ma :)

0

U mnie ten kod uruchamia się bez problemu. Wygląda na to, że jest to błąd twojej maszyny wirtualnej. Rozwiązanie: zainstaluj sobie stabilną wersję Javy.

0

Faktycznie problem wynika z błędu maszyny wirtualnej.

Rozwiązanie:

  1. Odinstalować wszystkie wersje Javy z systemu.
  2. Zainstalować stabilną wersję (u mnie działa: Version 1.4.2_09) najlepiej na innej partycji.

Dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1