Neuen Datentypen erstellen

Status
Nicht offen für weitere Antworten.

y++

Mitglied
Ich möchte bzw. muss ein neuen Datentypen erstellen da es in Java keinen gibt der eine 14 Stellige Zahl mit 6 Nachkomma Stellen abspeichern kann.

Also folgendes :

Code:
 long  a = 0,
        b = 0,
        c = 1000000000; // 1 000 000 000

Nun möchte ich die ersten 4 Zahlen von c also 1000 in a rein geschreiben und den Rest dann in b also die letztens 6 Nullen.

:meld: Folgendes soll dann erscheinen

Code:
System.out.print(a + "," + b);

1000,000000

----------------------

Wie man die ersten 4 Zahlen abschneiden kann weiß ich schon,

Code:
a = Math.round(c * 0.000001);

a hätte dann dern Wert 1000, aber wie schiebe ich jetzt den rest b zu ?
 

Luma

Bekanntes Mitglied
Natürlich geht das unter Java mit BigDecimal: http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigDecimal.html

Zu deinem Problem. Ich würde das so machen:
Code:
long c = 1000000;
String s;
s = c + "";
s = s.substring(0,3);
System.err.println(s);
long a = Long.parseLong(s);
s = c + "";
s = s.substring(3, s.length());
System.err.println(s);
long b = Long.parseLong(s);

System.out.print(a + " " + b);

Wenn du das machst, bekommst du als Output aber
100 0

Wenn nämlich b geparst wird und die Zahl ist dabei 000000 wird natürlich 0 zurückgegeben. Außer du arbeitest mit Strings. Dann hast du deine Nullen.

Gruß
Lutz
 

byte

Top Contributor
Luma hat gesagt.:
Code:
long c = 1000000;
String s;
s = c + "";
s = s.substring(0,3);
System.err.println(s);
long a = Long.parseLong(s);
s = c + "";
s = s.substring(3, s.length());
System.err.println(s);
long b = Long.parseLong(s);

System.out.print(a + " " + b);

Bei dem Code krausen sich meine Nackenhaare.

Code:
long c = 1000000;
long a = c / 1000;
long b = c % (a*1000);
 

byte

Top Contributor
Naja, es ist nicht grade hübsch für eine Zahlenrechnung Strings zu verwenden, nicht zuletzt weil Stringoperationen (im Gegensatz zu Operationen auf den primitiven Datentypen) extrem inperformant sind.
 

y++

Mitglied
OK, das würde gehen. Ich aber immer noch Probleme mit den Datentypen.

Also vorweg, ich darf nicht auf existierende Klassen zurückgreifen sondern muss komplett einen neuen Datentypen entwickeln.

Ich soll Beträge biss zu zehn Quadrillionen unterstützen:

10 000 000 000 000 000 000 000 000

und dann soll das ganze noch 6 nachkomma Stellen haben... ich bin total überfordert. Also ein 64 Bit LONG reicht schonmal nicht aus und ich müsste dann wohl 3 nehmen. Hier mal der Anfang

class datentyp{
long a;
long b;
long c;
}

das sind jetzt die drei Objektvarieblen und in den 3 soll dann wiederum eine zahl drinne stecken. ein Long kann ja 10 zahlen aufnehmen also wäre das dann insg. 30.

doch wie Programmiere ich nun den Datentypen das ich ähnlich wie int b = 999 sagen kann mein neuer Datentyp b = 123456789123456789.123456;
 

HAOSK

Mitglied
einen primitiven Typ selbst zu schreiben...
Ob dass geht???

ich glaube nicht dass du ohne 'new' - Operator hinkommst.

(Kann mich natürlich auch irren ;-) )

Gruß
 

SnooP

Top Contributor
Das geht auch nicht und ist definitiv nicht Ziel der Aufgabenstellung... - sinnig wäre eine definition über nen String-Konstruktor so wie das in BigInteger oder Decimal gemacht wird:
Biggy b = new Biggy("123456789123456789.123456");
und dann so Methoden wie b.add(new Biggy("2"));...

welche Methoden brauchst du denn? nur addieren und subtrahieren oder auch multiplizieren?
Weil addieren ist ja relativ einfach, da du bei addieren immer nur beiden stellen addieren und den carry zwischenspeichern musst. Beim Überschreiten der Zahlengrenzen (durch die 3 longs) musst du dann in die nächste zahl rüberspringen... könnte man auch dann in ein Array der größe 3 packen, dann musst du die drei Variablen nicht direkt benennen beim Rübergehen in die nächste.

Subtraktion geht genauso wie die Addition nur mit der Geschichte mit dem Zweierkomplement - kann man ja mal nachlesen wie das geht. D.h. das du mehr oder weniger die Additionsimplementierung dafür nutzen kannst.

hab sowas ähnliches mal gemacht.. dann aber in einer Listenimplementierung mit unendlich großen ganzen Zahlen und nur add und sub:
http://www.ips.cs.tu-bs.de/struck/lehrer04/ergaenzung.tar.gz
 

y++

Mitglied
ok das hat mir schonmal weiter geholfen. Klar die Zahlen müssen ja irgendwie übergeben werden ... wenn sie schon zu lang sind kann man das auch nur mit einem String machen und dann in den Konstruktor laden. Also ich brauche addition subtrahieren und dann noch Zinsen berechnen und so. also prozent rechnung.

ich arbeite heute nochmal an der Aufgabe mal sehn was fürn schei** dabei rauskommt ^^
 

y++

Mitglied
ok das hat mir schonmal weiter geholfen. Klar die Zahlen müssen ja irgendwie übergeben werden ... wenn sie schon zu lang sind kann man das auch nur mit einem String machen und dann in den Konstruktor laden. Also ich brauche addition subtrahieren und dann noch Zinsen berechnen und so. also prozent rechnung.

ich arbeite heute nochmal an der Aufgabe mal sehn was fürn schei** dabei rauskommt ^^
 

y++

Mitglied
Also ok sagen wir mal ich habe ein String.

a = "1234567891234.123456";

Diesen String übergebe ich jetzt einer Methode und der soll ihn in die varieblen schreiben.

class neuerDatentyp
{
long high;
long mid;
long low;

speicherZahl()
{
...
}

speicher zahl soll den String übergeben bekommen und dann in high,mid und low speichern.

low = [0000.000000] 4 stellen + 6 nachomma stellen
mid = [0000 000 000] 0000.000000 low + 10 zusätzliche stellen
high = [0000 000 000] 0000 000 000 0000.000000 für ganz große Zahlen 24 stellen + 6 nachkomma stellen

So also wenn im String eine 12345.123456 steht dann soll mid 1 sein low wird dann 2345.123456

versteht ihr was ich meine ? und dann bräuchte ich noch hilfe für die addition und sub...
 

SnooP

Top Contributor
substring & co wird dir beim Zerlegen eine Hilfe sein... guck dir einfach mal die Methoden in der API der Klasse String an oder guck in ein vernünftiges Javabuch... damit kannst du deinen Eingabestring dann prima zerlegen... hübsch von rechts nach links und dann in die Variablen packen.

Prozentrechnung bedeutet also auch division und multiplikation - das ist schonmal nen bissel kniffliger ;) aber letztlich geht das ganze nach dem Schema des schriftlichen Multiplizierens oder Dividierens - wenn man sich das schematische mal auf nen zettel malt, dann kann man damit vermutlich auch schon was anfangen... wird halt immer tricky wenn man an die jeweilige Variablengrenze kommt...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
B Grundsatzfragen zu meinem neuen Projekt Einnahmen-Ausgaben App Java Basics - Anfänger-Themen 8
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
N Wie lerne ich neuen Code zu benutzen? Java Basics - Anfänger-Themen 6
M Erste Schritte Neuen Frame nur einmal offen haben Java Basics - Anfänger-Themen 6
B MySQL starten / stoppen -> Stoppen erzeugt neuen Prozess Java Basics - Anfänger-Themen 0
W Klassen [GELÖST] Objekte während der Laufzeit mit neuen veränderten Werten beliebig oft initialisieren Java Basics - Anfänger-Themen 2
J Variablen String neuen Wert zuwesein Java Basics - Anfänger-Themen 6
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
O Java Erzeugung von neuen Objekten Java Basics - Anfänger-Themen 1
M Neuen Ordner im Überverzeichnis erstellen, und dadrin arbeiten Java Basics - Anfänger-Themen 4
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
T Alte Einträge im Array werden von neuen überschrieben Java Basics - Anfänger-Themen 5
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
T Threads Neuen Thread nicht aus main-Methode starten Java Basics - Anfänger-Themen 3
C Probleme mit neuen Objekten Java Basics - Anfänger-Themen 3
L warum werden nicht die neuen Point Daten der Zeile 25 beim ausprinten Zeile 28 übernommen ? Java Basics - Anfänger-Themen 8
J Klassen wie würde das in einer neuen class aussehen Java Basics - Anfänger-Themen 6
F erstellen einer neuen methode für das Zeichenfenster Java Basics - Anfänger-Themen 4
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
J neuen jFrame öffnen per buttonklick Java Basics - Anfänger-Themen 3
R Button soll neuen Frame öffnen Java Basics - Anfänger-Themen 21
K Methode überschreiben - neuen Fehler Werfen? Java Basics - Anfänger-Themen 6
S Einen neuen String ohne Array oder List erzeugen??? Java Basics - Anfänger-Themen 13
E Keine neuen Beiträge Mit JavaMachine Datei vom Host in den Ram des Host laden. Java Basics - Anfänger-Themen 4
L Bei Click Neuen Tab Fenster öffnen Java Basics - Anfänger-Themen 8
L Textzeilen nach 2 Wörtern untersuchen wenn vorhanden Zeile in neuen Text ausgeben wenn nicht löschen Java Basics - Anfänger-Themen 10
R Array eines neuen Typen erstellen und befüllen Java Basics - Anfänger-Themen 2
I Integer neuen wert zuweisen Java Basics - Anfänger-Themen 2
I Color-Objekt neuen Wert zuweisen Java Basics - Anfänger-Themen 3
O Neuen Blackberry 8800 oder Curve gegen kleines Programm Java Basics - Anfänger-Themen 9
A Zeichen selektiv in einen neuen StringBuffer speichern Java Basics - Anfänger-Themen 2
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
H wie spreche ich durch leerzeichen im string neuen index an Java Basics - Anfänger-Themen 10
V In einem Fenster ein neuen Fenster öffnen. Java Basics - Anfänger-Themen 4
P class in neuen Thread auslagern Java Basics - Anfänger-Themen 3
L Variable eines neuen Objekts belegen Java Basics - Anfänger-Themen 2
E Von einem JDialog einen neuen JDialog aufrufen Java Basics - Anfänger-Themen 10
D Probleme nach Einbindung einens neuen Packages Java Basics - Anfänger-Themen 5
M deprecated / veraltet - Wo kann man die "Neuen" fi Java Basics - Anfänger-Themen 10
S brauche hilfe mit neuen Scanner Klasse Java Basics - Anfänger-Themen 17
G Probelm mit Runtime exec! Erstellen einer neuen Konsole. Java Basics - Anfänger-Themen 2
F Neuen Pfad anlegen Java Basics - Anfänger-Themen 3
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
T Unterschiedliche Datentypen - worin abspeichern? Java Basics - Anfänger-Themen 18
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
J Einige Anfängerfragen (Datentypen, Wertebereich) Java Basics - Anfänger-Themen 11
thor_norsk Datentypen unter Java Java Basics - Anfänger-Themen 3
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
G Methoden Methoden mit versch. Datentypen Java Basics - Anfänger-Themen 1
Nicolex3 Größere Datentypen Java Basics - Anfänger-Themen 35
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
W Vergleiche bei generischen Datentypen Java Basics - Anfänger-Themen 7
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
L Binären Bäume für beliebige Datentypen Java Basics - Anfänger-Themen 15
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
A Datentypen Unterschiedliche Datentypen in einer Eingabe einlesen Java Basics - Anfänger-Themen 2
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
SHasteCode Datentypen Überlauf primitiver Datentypen Java Basics - Anfänger-Themen 4
S Datentypen Java Basics - Anfänger-Themen 14
Antegra Tekkrebell Primitive Datentypen Literal 8072 Java Basics - Anfänger-Themen 21
N Array gleiche Datentypen zusammenrechnen Java Basics - Anfänger-Themen 28
S Datentypen Java Basics - Anfänger-Themen 4
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
H wählen des kleinstmöglichen Datentypen für Gleitkommazahlen. Java Basics - Anfänger-Themen 2
S Datentypen Java Basics - Anfänger-Themen 2
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
J Zusammenhang Numbers und nummerische Datentypen Java Basics - Anfänger-Themen 2
F Variablen unterschiedlicher Datentypen Java Basics - Anfänger-Themen 6
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
D Spezifikation abstrakter Datentypen Java Basics - Anfänger-Themen 3
W Datentypen Datentypen vergleichen Java Basics - Anfänger-Themen 4
B JAVA Datentypen/Überlauf Java Basics - Anfänger-Themen 4
I Erste Schritte HILFE bei Datentypen Java Basics - Anfänger-Themen 2
J Wertebereiche und Datentypen Java Basics - Anfänger-Themen 12
N Methode mit 2 Datentypen. Fehler? Java Basics - Anfänger-Themen 1
N Probleme mit Datentypen Java Basics - Anfänger-Themen 6
S Datentypen Unterschied elementare und zusammengesetzte/strukturierte Datentypen Java Basics - Anfänger-Themen 5
L Beliebigen Datentypen aus String parsen Java Basics - Anfänger-Themen 6
M Wann eine Wrapper Klasse verwenden und wann einen primitiven Datentypen? Java Basics - Anfänger-Themen 8
K new / Datentypen Java Basics - Anfänger-Themen 3
S Datentypen und ihre Größe Java Basics - Anfänger-Themen 21
T Variablen Varargs und beliebige Datentypen Java Basics - Anfänger-Themen 7
S Datentypen Sonderbehandlung primitiver Datentypen, fixe Konstanteninterpretation Java Basics - Anfänger-Themen 10
G Wertebereiche bei Datentypen Java Basics - Anfänger-Themen 10
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben