Negative Null - geht das?

Status
Nicht offen für weitere Antworten.
P

Pida

Gast
Hallo,

ich habe eine Aufgabe vorliegen, bei der ein Geldbetrag über zwei Integer (euro und cent) gespeichert werden muss. Der Betrag kann auch negativ sein, dies soll durch einen negativen euro-Wert ausgedrückt werden.

Beispiel: -5,23 € wird gespeichert mittels euro = -5 und cent = 23

Dies funktioniert aber nicht bei negativen Beträgen bis -0,99 €, denn dann müsste euro = -0 sein - doch das lässt sich so nicht abspeichern, und aus -0,99 € wird so 0,99 €.

Das Problem tritt hier auf:

Code:
if centWert < 0 euro = centWert / 100  // hier müsste ggf. eine NEGATIVE Null gespeichert werden

Kann man da was abändern? Das Vorzeichen muss mit int euro abgespeichert werden, dies ist Teil der Aufgabenstellung.

Vielen Dank
Pida
 

The_S

Top Contributor
Wo speicherst du ab? Eine Null hat kein Vorzeichen. Was spricht dagegen beim Laden der Daten zu überprüfen, ob Euro oder Cent negativ ist? Falls ja => beides Negativ.
 
G

Guest

Gast
Ich speichere in zwei Integers, euro und cent. In einem dritten Integer centWert ist der Gesamtbatrag in cent mit Vorteichen abgespeichert. Das ist aber nur eine intermediäre Repräsentation.

Die Aufgabenstellung verlangt, negative Werte über den euro-Wert zu speichern; -0,99 € über euro = 0 und cent = -99 zu speichern scheidet also aus.

Vielen Dank
Pida
 

tfa

Top Contributor
Kannst Du für z.B. -23 Cent einfach -1€ und +77 Cent abspeichern? Sehr hässlich, aber wenn es die Aufgabe erfüllt...
 

Backwardsman

Bekanntes Mitglied
ich würde einfach das vorderste bit eines int als vorzeichen bit nehmen! (1 für negativ, 0 für positiv)
das würde bedeuten:

+0 <=> 0000.0000 (32 Nullen)
-0 <=> 1000...000 (1 gefolgt von 31 Nullen)

was man dazu bräuchte wären zwei funktionen zum schreiben und lesen des euro-ints bzw. des vorzeichens, da es nicht mehr dem "normalen java int" entsprechen würde.
 
P

Pida

Gast
Danke für eure Antworten.

@tfa: Leider muss ich die Beträge nicht nur speichern, sondern auch wieder abrufen. Dabei benötige ich die 'echten' Euro- bzw. Cent-Beträge.
@Backwardsman: Ein neuer Datentyp wäre sicher nicht im Sinne der Aufgabenstellung... könnte man damit eigentlich den Java-Integer überschreiben?

Ich habe jetzt mal wegen der Aufgabenstellung nachgehakt und warte auf Antwort.

Viele Grüße
Pida
 

Backwardsman

Bekanntes Mitglied
das wäre weder ein neuer datentyp noch eine neue klasse... ein int hat 32bit und wie man die interpretiert ist einem doch selbst überlasen. man bräuchte wie gesagt nur methoden zum interpretieren... du würdest weiterhin einfach mit int arbeiten

im grunde reicht schon folgendes:
sei int euro dein int bzw. dein 32-bit speicher, dann macht man einfach:
int vorzeichen = euro & 0x80000000;
int euroBetrag = euro & 0x7FFFFFFF;

du brauchst also nur ein int, wie von der aufgabenstellung gefordert!

mehr ist es nicht! kein neuer datentyp, keine neue klasse, einfach die bits anders interpretieren.

durch die interpretation verlierst du nicht man was an der anzahl der darzustelllenden positiven zahlen!
 

Leroy42

Top Contributor
tfa hat gesagt.:
Kannst Du für z.B. -23 Cent einfach -1€ und +77 Cent abspeichern? Sehr hässlich, aber wenn es die Aufgabe erfüllt...
:shock:

Und wie stellst du dann "-1.77 €" dar?
-2€ und +23 Cent? :shock: :shock: :shock:

Wozu so eine verquere (oder verquer verstandene) Aufgabenstellung führen kann... ???:L
 
S

SlaterB

Gast
du weißt doch sicherlich, wie float intern die bits sortiert,
da ist das ja noch vergleichsweise harmlos,

diese Darstellung ist sogar besser als die vorherige,
bei 1,23 = 1 + 0.23
und -1,23 = -1 - 0.23
muss man die beiden ints mal addieren, mal subtrahieren,
bei 1,23 = 1 + 0.23
und -1,23 = -2 + 0.77
dagegen immer addieren, das ist doch schön,

(gut, dafür hat man es auf dem Rückweg von -1,23 auf die beiden Einzelzahlen schwerer ;) ,
obwohl, vielleicht gar nicht mal )

also: die beiden ints so speichern,
das ganze in einer Klasse wegsperren, so dass es niemand sehen kann,
schon hat man eine ordentliche Lösung
 

tfa

Top Contributor
Leroy42 hat gesagt.:
tfa hat gesagt.:
Kannst Du für z.B. -23 Cent einfach -1€ und +77 Cent abspeichern? Sehr hässlich, aber wenn es die Aufgabe erfüllt...
:shock:

Und wie stellst du dann "-1.77 €" dar?
-2€ und +23 Cent? :shock: :shock: :shock:

Ne. -1€ + -77 Cent natürlich.

Leroy42 hat gesagt.:
Wozu so eine verquere (oder verquer verstandene) Aufgabenstellung führen kann... ???:L

Tja. Manche Lehrer sind komisch...
 

Ark

Top Contributor
Wie weit fernab der Realität man doch Aufgaben stellen kann! :shock:

Den Betrag in Cent als int gespeichert, und die Sache ist geritzt. Außerdem ist es totaler Unsinn, 32 Bit nur für Zahlen im Intervall [0;99] zu speichern. Dadurch werden 25,35614381 Bits verschwendet, das sind immerhin über 79,23%! Bring mal deinem Lehrer schonend bei, dass er 'nen Knall hat! :roll:

Ark
 
S

SlaterB

Gast
da kann man sich gar nicht so sicher sein,
stelle dir vor, die Zahl wird als byte gespeichert und Java muss sie dann zum Rechnen immer wieder erst in einen int umwandeln, weil Java nunmal nur mit int rechnet,
schon hast du einen erheblichen Zeitaufwand obwohl der gesparte Platz unerheblich ist,

(nur ein Beispiel was denkbar ist)
 

Backwardsman

Bekanntes Mitglied
ooooh mann... das hier ein ANFÄNGER-forum!??!?! dem lehrer wird schon klar sein, dass 79,23938457923423423635789753485000000001% bit verschwendet werden... schon mal dran gedacht, dass der lehrer evtl ein ganz anderes ziel verfolgt?
 

Ark

Top Contributor
Backwardsman hat gesagt.:
schon mal dran gedacht, dass der lehrer evtl ein ganz anderes ziel verfolgt?
Ja, daran habe ich gedacht, aber ich bin beim besten Willen nicht darauf gekommen, was das bitte für ein Ziel sein soll. oO

Vielleicht kannst du oder der Threadersteller es mal verraten. ;)

Ark
 
S

SlaterB

Gast
das Ziel ist, Java kennenzulernen, mit Java zu arbeiten, und zwar auf verständliche einfache Weise,
jedem Menschen fällt der Umgang mit einem Datum mit Tagen, Monaten, Stunden usw. leichter als mit einem simplen long-Wert,
auch kann man da interessante Rechnungen anstellen, die man noch per Hand nachvollziehen kann
 
G

Guest

Gast
Die weiteren Berechnungen werden über eine Variable durchgeführt, die den Betrag komplett als Centbetrag speichert. Da hatte ich mich im ersten Posting nicht richtig ausgedrückt. Der Beispielcode daraus ist allerdings Bestandteil einer Klasse Euro, deren Instanzen eben so erzeugt werden, dass ein negativer Betrag durch ein negatives Vorzeichen beim Integer-Parameter euro ausgedrückt wird.

Ich habe inzwischen Antwort auf meine Nachfrage erhalten: Es ist tatsächlich nicht möglich, ein solches Objekt mit einem Wert von -0,99 € - 0,01 € zu erzeugen.

Viele Grüße
Pida
 
G

Gast

Gast
Das habe ich schon geglaubt, meine Nachfrage beim Dozenten bezog sich ja darauf, wie dieser Umstand mit der Aufgabenstellung zu vereinbaren ist.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Edit Text Negative Decimalzahlen Java Basics - Anfänger-Themen 18
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
A Negative float Werte? Java Basics - Anfänger-Themen 10
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
F Negative Zahl erzwingen Java Basics - Anfänger-Themen 3
D auch negative Zahlen sotieren Java Basics - Anfänger-Themen 18
J jOptionPane, Array und negative Zahlen Java Basics - Anfänger-Themen 2
G Warum funktioniert das Programm für negative Eingabe nicht? Java Basics - Anfänger-Themen 3
J Erste Schritte Scanner negative zahl einlesen und verwenden. Java Basics - Anfänger-Themen 6
D Datentypen 2 d array erweitern und ins negative gehen. Java Basics - Anfänger-Themen 9
S Negative Zahlen auffüllen Java Basics - Anfänger-Themen 5
C Erste Schritte Negative Zahlen als Fakultät ablehnen Java Basics - Anfänger-Themen 2
C Rekursion auf einem Array(negative werte addieren) Java Basics - Anfänger-Themen 4
B Input/Output Positive und negative Zahlen ausgeben Java Basics - Anfänger-Themen 27
H Datentypen TreeMap<Double, Object> - negative Werte? Java Basics - Anfänger-Themen 4
J Summe postive Zahlen und negative Zahlen Java Basics - Anfänger-Themen 12
dummy2 Negative Höhe / Breite bei Figuren Java Basics - Anfänger-Themen 2
L Gelöst: Negative Eingaben sollen verweigert werden Java Basics - Anfänger-Themen 3
E Negative Abfrage auf instanceof Java Basics - Anfänger-Themen 3
M Negative Werte abfangen Java Basics - Anfänger-Themen 18
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
P Buffer und null Java Basics - Anfänger-Themen 3
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
N null in String replacen Java Basics - Anfänger-Themen 16
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
K Bufread.readLine())!= null wie beenden? Java Basics - Anfänger-Themen 4
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
T ComboBox getValue() zeigt null Java Basics - Anfänger-Themen 7
J null exception Array Java Basics - Anfänger-Themen 5
tobikoch String x= null Bedeutung Java Basics - Anfänger-Themen 9
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
J Int wird als Null ausgegeben Java Basics - Anfänger-Themen 8
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
L Warum ist Variable null? Java Basics - Anfänger-Themen 3
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
O JavaArray Null Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
D Best Practice Konvention - Klassenmembers auf null setzen? Java Basics - Anfänger-Themen 2
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
Orkanson Null Pointer Expception Java Basics - Anfänger-Themen 3
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
I Polymorphie Null Objekt Java Basics - Anfänger-Themen 3
O Datentypen Integer mit führender Null Java Basics - Anfänger-Themen 13
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
J Einfache Frage zu "null" Java Basics - Anfänger-Themen 2
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
C Null Pointer Exception Java Basics - Anfänger-Themen 10
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
G Null Pointer Exception Java Basics - Anfänger-Themen 4
R Gleitkommazahlen ohne führende Null Java Basics - Anfänger-Themen 10
M array = null Java Basics - Anfänger-Themen 2
F String equals NULL Problem Java Basics - Anfänger-Themen 4
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
R Property Value als null setzen Java Basics - Anfänger-Themen 1
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
T Compiler-Fehler Null type safety (type annotations) Java Basics - Anfänger-Themen 5
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
J Fehlerhafte Ausgabe "null" Java Basics - Anfänger-Themen 2
G Threads zum Thema Threads??? null Ahnung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
D OOP Warum bekomme ich eine Null-Pointer Exception!!? :( Java Basics - Anfänger-Themen 4
D Null Ausgabe obwohl wert zugewiesen Java Basics - Anfänger-Themen 5
J Alias null Java Basics - Anfänger-Themen 4
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
A null-Überprüfung Java Basics - Anfänger-Themen 24
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
A Null Pointer Exception in Liste Java Basics - Anfänger-Themen 11
T Null Java Basics - Anfänger-Themen 3
X Array trotz Befüllung "null" Java Basics - Anfänger-Themen 11
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
L Null Pointer Exception bei setText Java Basics - Anfänger-Themen 9
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
J Verschränkte Rekursion und null Ahnung... Java Basics - Anfänger-Themen 0
X Vererbung Setzen auf Null bei Subklassen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben