Operatoren Fehler bad operand types for binary operator

Heisenberg1337

Neues Mitglied
Hallo,

ich bin gerade dabei für eine Arbeit zu lernen und habe mal versucht ein kleines Programm zu schreiben, leider bekomme ich immer den Fehler:
versandkosten.java:14:12: error: bad operand types for binary operator '<'
ich habe schon alles probiert was mir eingefallen ist allerdings bekomme ich es nicht zum laufen 🙁

Code:

Java:
import java.util.*;
import java.io.*;
public class versandkosten
{
  public static void main (String argv [] )
  {
  double Zahl = 200;
  double Gewicht;
 
  Scanner Wert = new Scanner (System.in);
  System.out.println("geben sie einen wert ein");
  Gewicht = Wert.nextDouble();
 
  if (Wert < Zahl)
   
  System.out.println("es fallen keine versandkosten an");  
 
  else {
         System.out.println("es fallen 5.50€ versandkosten an");
} // end of if-else

  }}

Danke für eure Hilfe schonmal im Vorraus
 
Du vergleichst den Scanner mit Zahl, nicht Gewicht mit Zahl.
Bitte so schreiben:
Java:
        System.out.println("Wie schwer ist das Gewicht?");
        String line = new Scanner(System.in).nextLine();
        line = line.replace(',', '.');
        double gewicht = Double.parseDouble(line);
        System.out.println("Die Versandkosten betragen:");
        System.out.println(Math.round(0.0275 * gewicht * 100.0) / 100.0 + " Euro");

Code:
Wie schwer ist das Gewicht?
77
Die Versandkosten betragen:
2.12 Euro
 
Bearbeitung: Wenn die Versandkosten nicht linear sind, sondern gestuft:
Java:
System.out.println("Die Versandkosten betragen:");
        if (gewicht < 50) {
            System.out.print(0);
        } else if (gewicht < 100) {
            System.out.print(2.75);
        } else {
            System.out.print(5.5);
        }
        System.out.println(" Euro");

Man kann auch eine sehr fiese Funktion durchlegen, Wendepunkt bei 100, <= 0 wäre 0 und >= 200 wäre 5.5 ... Aber das ist gemein.
 
Ich hab mir die Versandkosten so gedacht:

61mqj3O.png


Aber tatsächlich ist mir gestern die Funktion nicht eingefallen,
jedenfalls ist nur Kleinigkeit zu ändern:

Java:
    public static void main(String[] args)  {
        System.out.println("Wie schwer ist das Gewicht?");
        String line = new Scanner(System.in).nextLine();
        line = line.replace(',', '.');
        double gewicht = Double.parseDouble(line);
        System.out.println("Die Versandkosten betragen:");
        System.out.println(versandkosten(gewicht) + " Euro");

        for (int i = 0; i <= 210; i += 10) {
            System.out.println("Für " + i + " Versandkosten: " + versandkosten(i));
        }
    }

    static double versandkosten(double gewicht) {
        return Math.round(5.5 * 100.0 / (1 + Math.pow(0.91, gewicht - 100))) / 100.0;
    }

Code:
Wie schwer ist das Gewicht?
77
Die Versandkosten betragen:
0.56 Euro
Für 0 Versandkosten: 0.0
Für 10 Versandkosten: 0.0
Für 20 Versandkosten: 0.0
Für 30 Versandkosten: 0.01
Für 40 Versandkosten: 0.02
Für 50 Versandkosten: 0.05
Für 60 Versandkosten: 0.12
Für 70 Versandkosten: 0.31
Für 80 Versandkosten: 0.72
Für 90 Versandkosten: 1.54
Für 100 Versandkosten: 2.75
Für 110 Versandkosten: 3.96
Für 120 Versandkosten: 4.78
Für 130 Versandkosten: 5.19
Für 140 Versandkosten: 5.38
Für 150 Versandkosten: 5.45
Für 160 Versandkosten: 5.48
Für 170 Versandkosten: 5.49
Für 180 Versandkosten: 5.5
Für 190 Versandkosten: 5.5
Für 200 Versandkosten: 5.5
Für 210 Versandkosten: 5.5

Nehmen wir Gewichte von 0 bis 20 (Gramm?) : keine Versandkosten.
Gewichte von 180 bis 200 (und darüber) : 5,5 Euro Versandkosten.

(Centigram oder so etwas sind das, stimmt's?)
 
Sorry, ich sollte mich auch mal informieren...
Wenn die Eingabe in Deka- oder Hektogramm erfolgt, dann stimmt's.
Centigram ist natürlich "Nonsens".

Bearbeitung:
Ab wann ist es denn versandkostenfrei
und ab wann "für alles" 5,50 Euro?
 

Zurück
Oben