Hallo,
ich sitz grad an einem Programm zur Berechnung von Abschreibungswerten, jetzt wollte ich als Anfangswert double nehmen, um nicht nur "glatte" Zahlen zur berechnung zuzulassen, ich habe auch deswegen extra als Sicherung hasNext verwendet (was ich noch nicht kannte, hoffe/denke es is so richtig), leider kommt dann beim comp. mit JCreator "possible loss in precision" wegen der Multiplikation in der Berechnung...
...merkwürdigerweise, kann ich den Anfangswert nicht auch als Int deklarieren, dann heisst es plötzlich "Variable might not have been initialized" in Bezg. auf alles ausser den Restwert. Es ist mir zwar klar, dass die variablen nicht global gültig sind, aber dass er plötzlich vergisst dass sie initialisiert wurden verstehe ich dabei auch nicht....
jemand eine Lösung dafür...?
ich sitz grad an einem Programm zur Berechnung von Abschreibungswerten, jetzt wollte ich als Anfangswert double nehmen, um nicht nur "glatte" Zahlen zur berechnung zuzulassen, ich habe auch deswegen extra als Sicherung hasNext verwendet (was ich noch nicht kannte, hoffe/denke es is so richtig), leider kommt dann beim comp. mit JCreator "possible loss in precision" wegen der Multiplikation in der Berechnung...
...merkwürdigerweise, kann ich den Anfangswert nicht auch als Int deklarieren, dann heisst es plötzlich "Variable might not have been initialized" in Bezg. auf alles ausser den Restwert. Es ist mir zwar klar, dass die variablen nicht global gültig sind, aber dass er plötzlich vergisst dass sie initialisiert wurden verstehe ich dabei auch nicht....
jemand eine Lösung dafür...?
Java:
import java.io.*;
import java.util.Scanner;
public class Restwert {
public static void main(String[] args) {
// Variablendeklarationen
int Anfangswert;
int Nutzungsdauer;
int Jahre;
int Restwert;
// Werte eingeben
System.out.println("Geben sie die Anschaffungskosten ein! "); // Anfangswert eingeben
Scanner in = new Scanner( System.in);
if (in.hasNextInt()) Anfangswert = in.nextInt();
System.out.println("Geben sie die Nutzungsdauer in Jahren an!"); // Nutzungsdauer eingeben
if (in.hasNextInt()) Nutzungsdauer = in.nextInt();
System.out.println("Geben sie das Jahr an!"); // Jahr eingeben
if (in.hasNextInt()) Jahre = in.nextInt();
// (3) Anweisungen
Restwert = (1 - (((2 * Nutzungsdauer + 1 - Jahre) * Jahre) / (Nutzungsdauer * Nutzungsdauer + Nutzungsdauer))) * Anfangswert;
Restwert = Math.round(Restwert);
// (4) Ausgabe
System.out.println ("Der Restwert beträgt nach "+ Jahre +" Jahren rund "+ Restwert +" Euro.");
}
}