int to double in einer double methode

crossit

Grünschnabel
Hallo Leute,

bin durch meine Uni auf Java gekommen und habe leider ab und an paar kleine Probleme. Ich hoffe das Ihr mir hierbei helfen könnt.
Unzwar soll ich eine Steuer berechnen mit einer double Methode habe jedoch aus dem UML Diagramm einen Int-Wert den ich nutzen soll. Ich habe mich natürlich schlau gemacht und durch Typcasten das leider nicht hingekommen...
public class Rn {
private int anzahl;
public double pzahl;
public double Szahl;
public double bS;

public double bP() {
return anzahl*(pzahl*Szahl);
}

public double SA() {
bS = anzahl*Szahl;
return bS;
}
}
Als Fehler gibt mir Eclipse das an :
Multiple markers at this line
- This method must return a result of type double
- Line breakpoint:Rn [line: 13] -
SA(double)
- Method breakpoint:Rn [entry] -
SA(double)
- Method breakpoint:Rn [entry] - SA(int,
double)
 

saftmeister

Nutze den Saft!
Hallo und willkommen auf tutorials.de.

Du kannst das über den Umweg String erledigen:

Java:
public double bP() {
  return Double.valueOf(String.valueOf(anzahl) + ".0") * (pzahl*Szahl);
}

Ist zwar bisschen hässlich, dürfte aber funktionieren (ungetestet)
 

crossit

Grünschnabel
habe noch eine andere Frage:
Unzwar soll in meiner Mainfunktion ein Neues Produkt erstellt werden hierfür die methode
public static void main(String[] args) {
new Getraenk(produktNr,name,preis,alkoholGehalt)
Getraenk wasser = new Getraenk(001,"Vodka",12.85,40);
}
Habe diese in einer neuen Klasse definiert aber die Mainfunktion will die Sachen nicht übernehmen und streicht sie mir als Fehler an.
produktNr cannot be resolved to a variable
4 quick fixies available:
1.create local variable "produktNr"
2. create local field "produktNr"
3.create parameter "produktNr"
4.create constant "produktNr"

public class Getraenk extends Produkt {
private double alkoholGehalt;
public double Steuern; //setze eigene Steuern für die Klasse
public Getraenk(int nummer, String name, double preis, double alkoholGehalt) {
super(nummer, name, preis);
this.alkoholGehalt = alkoholGehalt;
}
public double getalkoholGehalt (){ // gibt den alkoholgehalt aus
return alkoholGehalt;
}
void setalkoholGehalt (){ // ermöglicht einen Alkoholgehalt zu setzen
this.alkoholGehalt = alkoholGehalt;
}

@Override
public double berechneSteuer() { // berechene Steuern in Abhängigkeit des Alkoholgehaltes
if (alkoholGehalt >0) { // wenn alkoholgehalt > 0 dann 21% steuern
Steuern = getPreis()*0.21;
}
else {
Steuern = getPreis()*0.19; // wenn nicht 19%
}
return Steuern; //gebe steuern aus
}

}
 

vfl_freak

Premium-User
Moin,

Java:
public static void main(String[] args) {
new Getraenk(produktNr,name,preis,alkoholGehalt)
Getraenk wasser = new Getraenk(001,"Vodka",12.85,40);
}

Habe diese in einer neuen Klasse definiert aber die Mainfunktion will die Sachen nicht übernehmen und streicht sie mir als Fehler an.
produktNr cannot be resolved to a variable
4 quick fixies available:
1.create local variable "produktNr"
2. create local field "produktNr"
3.create parameter "produktNr"
4.create constant "produktNr"
Klar, weil die Variablen in der Signatur dort nicht bekannt sind !
Außerdem ist die zweite Zeile dort eh' unsinnig - streich sie einfach!

also:
Java:
public static void main(String[] args) 
{
    Getraenk wasser = new Getraenk(001,"Vodka",12.85,40);
    // ...
}

Gruß
Klaus