myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [Java]Zwei Zahlen zu einer Kommazahl machen (https://mygully.com/showthread.php?t=3484120)

Speedreini93 24.10.14 14:11

[Java]Zwei Zahlen zu einer Kommazahl machen
 
Hallo,
ist es möglich zwei Zahlen zb. Integer 10 und 10 zu einer ganzen Kommazahl zu machen, also 10.10?

Gruß
Speedreini93

spartan-b292 24.10.14 15:35

Natürlich. Die Art und weiße wie du das machst hängt ein bisschen davon ab welchen Datentyp du am ende brauchst.

Speedreini93 24.10.14 15:52

Am Ende brauche ich ein Integer. Muss mit der Zahl 10.10 + 0.5 machen und den Endwert als Integer ausgeben.

spartan-b292 24.10.14 16:01

Prinzipiell kannst du das z.B. so machen.
Code:

int z1=10;
int z2=10;
int digits_z2=0;
double z3=0;
       
digits_z2=(int) Math.log10(z2)+1;
z3 =  z1 + (z2/Math.pow(10, digits_z2));

Aber irgendwie klingt das so als hättest du schon früher einen Designfehler gemacht.

Delta538 24.10.14 16:01

Zitat:

Zitat von Speedreini93 (Beitrag 26077800)
Am Ende brauche ich ein Integer. Muss mit der Zahl 10.10 + 0.5 machen und den Endwert als Integer ausgeben.

Das wird nicht funktionieren!
Ein Integer ist nicht in der Lage Kommazahlen darzustellen hierzu musst du einen float/double verwenden (oder einen eigenen Datentypen).

Ein vermutlich nicht ganz so schöner weg wäre dieser hier:
Code:

int a = 10;
int b = 10;
double d = Double.parseDouble(a+"."+b);

Es gibt sicherlich noch bessere Wege als den hier...

Speedreini93 24.10.14 16:11

ja das Problem ist. Ich darf keine Double.parseDouble oder Math.pow verwenden.
Ich darf nur System.out.print(); ,Integer und Operatoren verwenden.
Weil ich sowas noch nicht in der Vorlesung hatte. Ich dachte es gibt einfachere Lösungen.
Nja, dann muss ich es irgendwie weiter versuchen. Vielleicht finde ich eine Lösung.

spartan-b292 24.10.14 16:16

Math.pow kannst du auch durch eine Schleife ersetzen. Ist zwar bescheuert aber das für ne Vorlesung ist...

Speedreini93 24.10.14 16:18

ja und das Problem ist ich darf keine Schleifen machen. -.-
Das ist so schlecht. Ich darf kaum etwas verwenden.
Das macht es noch schwerer.

JavaDevel 24.10.14 19:12

Ohne Schleifen ist das Problem nicht vernünftig zu lösen. Ich schlage vor, du machst das einfach so:
Code:

int i1 = 10;
int i2 = 10;     
int divisor = 100; //divisor um i2 zur nachkommastelle zu machen
float addValue = 0.5f;       
float result = (float)i2 / divisor;       
result = i1 + result;
result += addValue;
System.out.println((int)result);

der wert für divisor hätte auch ausgerechnet werden können. Ohne schleifen wäre das aber Bullshit.

csesraven 26.10.14 21:38

Soll evtl. einfach nur die Ausgabe wie eine Kommazahl aussehen?

Speedreini93 30.10.14 13:10

wir sollten es so machen:
int betrag = 117;
int zinssatz = 3;
int zins = (zinssatz + 100);


int euro = betrag * zins / 100;
int cent = betrag * zins % 100;

System.out.print(euro);
System.out.print(',');
System.out.println(cent);

csesraven 01.11.14 10:20

Ja, wie vermutet. Die Ausgabe soll nur so aussehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.