# Hilfe Bei Promillerechner



## Ice4P4rty (4. Dez 2017)

Guten Tag ich habe ein Projekt das ich in ein paar tagen abgeben muss aber die Formel ist falsch und ich weiß nicht warum und finde den Fehler nicht vielleicht kann mir hier einer weiter helfen.


```
public void jrechnen_ActionPerformed(ActionEvent evt) {
  
    double gewicht = (Double)jgewicht.getValue();
    double zeit = (Double)jzeit.getValue();  
    double konsuming = 0;  
    double konsumbier = 0;
    double konsumwein = 0;
    double konsumwodka = 0;
    double bierml = jbierml.getDouble();
    double weinml = jweinml.getDouble();
    double wodkaml = jwodkaml.getDouble();
    double BAK = 0;
  
    konsumbier = bierml*5.0 / 100*0.8;
    konsumwein = weinml*14.0 / 100*0.8;
    konsumwodka = wodkaml*40.0 / 100*0.8;
    konsuming = konsumbier + konsumwein + konsumwodka;
  
    //MoW Rechnung
  
    if (jrb_m.isSelected()) {
    
      BAK = konsuming / gewicht*0.7;
    
    } // end of if
    else {
    
      BAK = konsuming / gewicht*0.6;
    
    } // end of if-else
  
     for (int i=0 ; i < zeit ; i++) {
    
      BAK = BAK*0.85;
    
    } // end of for
  
  
  
    BAK = Math.round( BAK * 100d ) / 100d;
  
  
     jergebnis.setText(BAK+"%");                  
  
  } // end of jrechnen_ActionPerformed
```


Das habe ich bisher nicht wundern das ist nicht in der Console sondern ein JFrame (GUI).







Hier so sieht die Aufgabe aus damit man auch versteht warum ich zb 0.15% pro std genommen habe.


----------



## VfL_Freak (4. Dez 2017)

Moin,
und WELCHER Fehler rsp. WELCHE Formel ?? 
Verrätst Du uns das ?? 
VG Klaus

*EDIT: *
BTW: 
* was ist denn 'jrb_m' ??
* 'BAK = BAK*0.85' ... sicher, dass Du das n-mal machen willst?
* poste mal die Aufgabenstellung ...


----------



## Ice4P4rty (4. Dez 2017)

VfL_Freak hat gesagt.:


> Moin,
> und WELCHER Fehler rsp. WELCHE Formel ??
> Verrätst Du uns das ??
> VG Klaus
> ...




jo aufgabe hatte ich grade rein gemacht  
* jrb_m ist ein radio button für männlich
* BAK*0.85 weil jede std der Alkoholgehalt um 15% abgebaut wird

Hier ein link zum bild wie das fenster aussieht sry ging nicht anders iwie http://www.directupload.net/file/d/4926/3n9k94jg_png.htm


----------



## Robat (4. Dez 2017)

Ice4P4rty hat gesagt.:


> konsumbier = bierml*5.0 / 100*0.8;
> konsumwein = weinml*14.0 / 100*0.8;
> konsumwodka = wodkaml*40.0 / 100*0.8;


Ich kann die Formel nicht richtig erkennen, aber bist du dir sicher, dass du hier nicht klammern musst?


----------



## Ice4P4rty (4. Dez 2017)

Robat hat gesagt.:


> Ich kann die Formel nicht richtig erkennen, aber bist du dir sicher, dass du hier nicht klammern musst?



also wenn ich es im taschenrechner eingebe kommt genau das selbe raus egal ob mit oder ohne klammer


----------



## VfL_Freak (4. Dez 2017)

Moin,



> ```
> bierml*5.0 / 100*0.8
> ```


na ja, SO wird halt von links nach rechts gerechnet!
Also 
	
	
	
	





```
((bierml*5.0)/100)*0.8
```
Oder willst Du sowas haben:

```
(bierml*5.0) /(100*0.8)
```

Außerdem hast Du noch immer nicht verraten, was eigentlich Dein Problem rsp. Frage ist ..... 

VG Klaus


----------



## Ice4P4rty (4. Dez 2017)

mein problem ist das das falsche ergebnis rauskommt und mein lehrer gesagt hat ich hab ein fehler in der formel und ich komme jetzt nicht weiter 

PS: ein fehler hab ich schon es wird pro std nicht 15% weniger sonder 0.15 pro mille weniger also habe ich das jetzt schon mal in der for schleife geändert


```
for (int i=0 ; i < zeit ; i++) {
     
      BAK = BAK - 0.15;
     
    } // end of for
```


----------



## Ice4P4rty (4. Dez 2017)

VfL_Freak hat gesagt.:


> Moin,
> 
> 
> na ja, SO wird halt von links nach rechts gerechnet!
> ...



im internet steht die formel so:

*Zur Veranschaulichung einige Rechenbeispiele:*

1 Flasche Bier (330 ml, 4,8 Vol.-%): 330 ml x (4,8 / 100) x 0,8 = 12,7 g Alkohol.
1 Glas Wein (100 ml, 11 Vol.-%): 100 ml x (11 / 100) x 0,8 = 8,8 g Alkohol.
1 Glas Tequila (20 ml, 38 Vol.-%): 20 ml x (38 / 100) x 0,8 = 6,1 g Alkohol.
also müsste das bei mir so aussehen:

```
konsumbier = bierml*(5.0 / 100)*0.8;
```
das habe ich jetzt auch so noch geändert


----------



## Ice4P4rty (4. Dez 2017)

Also ich hab mal ein paar klammern gemacht und noch was umgestellet hier noch mal der aktuelle code


```
public void jrechnen_ActionPerformed(ActionEvent evt) {
 
    double gewicht = (Double)jgewicht.getValue();
    double zeit = (Double)jzeit.getValue(); 
    double konsuming = 0; 
    double konsumbier = 0;
    double konsumwein = 0;
    double konsumwodka = 0;
    double bierml = jbierml.getDouble();
    double weinml = jweinml.getDouble();
    double wodkaml = jwodkaml.getDouble();
    double BAK = 0;
 
    //Rechnunung
 
    konsumbier = bierml*(5.0 / 100)*0.8;                  // Klammern gesetzt !!
    konsumwein = weinml*(14.0 / 100)*0.8;              // Klammern gesetzt !!
    konsumwodka = wodkaml*(40.0 / 100)*0.8;         // Klammern gesetzt !!
    konsuming = konsumbier + konsumwein + konsumwodka;
 
    //MoW Rechnung
 
    if (jrb_m.isSelected()) {
   
      BAK = (gewicht*0.7) / konsuming; 
                              
                            // Klammern gesetzt und /konsuming verschoben
   
    } // end of if
    else {
   
      BAK = (gewicht*0.6) / konsuming;
                             
                            // Klammern gesetzt und /konsuming verschoben
   
    } // end of if-else
 
     for (int i=0 ; i < zeit ; i++) {
   
      BAK = BAK - 0.15;
   
                            // -0.15 pro mille und nicht 15% weniger

    } // end of for
 
 
 
    BAK = Math.round( BAK * 100d ) / 100d;
 
 
     jergebnis.setText(BAK+"%");                 
 
  } // end of jrechnen_ActionPerformed
```


----------



## Ice4P4rty (4. Dez 2017)

Leute ich hab es jetzt ... danke aber an alle antworten  hier die lösung:


```
public void jrechnen_ActionPerformed(ActionEvent evt) {
   
    double gewicht = (Double)jgewicht.getValue();
    double zeit = (Double)jzeit.getValue();   
    double konsuming = 0;   
    double konsumbier = 0;
    double konsumwein = 0;
    double konsumwodka = 0;
    double bierml = jbierml.getDouble();
    double weinml = jweinml.getDouble();
    double wodkaml = jwodkaml.getDouble();
    double BAK = 0;
   
    //Rechnunung
   
    konsumbier = bierml*(5.0 / 100)*0.8;
    konsumwein = weinml*(14.0 / 100)*0.8;
    konsumwodka = wodkaml*(40.0 / 100)*0.8;
    konsuming = konsumbier + konsumwein + konsumwodka;
   
    //MoW Rechnung
   
    if (jrb_m.isSelected()) {
     
      BAK = konsuming / (gewicht*0.7);  //konsum musste nach hinten
     
    } // end of if
    else {
     
      BAK = konsuming / (gewicht*0.6);  //konsum musste nach hinten
     
    } // end of if-else
   
     for (int i=0 ; i < zeit ; i++) {
     
      BAK = BAK - 0.15;
     
    } // end of for 
   
   
   
    BAK = Math.round( BAK * 100d ) / 100d;
   
   
     jergebnis.setText(BAK+"%");                   
   
  } // end of jrechnen_ActionPerformed
```


----------

