ich möchte eine double Zahl in eine Integer umrechnen.
Also ich will dass 175.432 zu 175 wird. das brauche ich damit ich den Wert auf 2 Nachkommastellen kürzen kann. und danach möchte ich dann das Integer wieder in ein double ändern und dann halt dadurch dass ich die Zahl durch 100 nehme auf 2 Nachkommastellen gekürzt haben.
Kann mir jemand sagen wie das geht? ich hab noch ganz verschwommen etwas mit
double = (int) 175.432 im Kopf, stimmt das?
Bis auf das, dass du dem double auch einen Namen geben musst schon.
Aber wenn du 175.432 intinisierst wird es zu 175(.0000000...). Wenn du es dann durch 100 dividierst, wird die Zahl 1.75. Ist das wirklich das, was du willst? ???:L
Das gibt 175 Ist es das was du willst? Aber Vorsicht
double d = (int) 175.999 gibt auch 175. Meine Glaskugel verrät mir nicht, was du wirklich willst. Vielleicht solltest du Math.round ansehen.
um auf 2 nachkommastellen zu kürzen musst du den double mit 100 multiplizieren, mit Math.round auf einen geraden int kürzen und dann wieder durch 100. dividieren. wichtig ist die division durch einen double, sonst wird das wieder ein int. alternativ kannst du natürlich den return von Math.round auch in einen double casten..
Wenn man runden will, dann muss man [c]Math.round()[/c] (wie von nrg vorgeschlagen) verwenden. Wenn man allerdings nur die Zahl "abschneiden" will, dann benötigt man so was:
Java:
double d =123.45678;
d =(int)(d *100.0)/100.0;// ergibt 123.45, und nicht wie bei round() 123.46
publicstaticvoidmain(String[] args){double d1 =1.75432;double d2 =1.75999;double d =((int)(d1 *100.0))/100.0;System.out.println(d1 +" wird mit (int) zu "+ d);
d =Math.round(d1 *100.0)/100.0;System.out.println(d1 +" wird mit round zu "+ d);
d =((int)(d2 *100.0))/100.0;System.out.println(d2 +" wird mit (int) zu "+ d);
d =Math.round(d2 *100.0)/100.0;System.out.println(d2 +" wird mit round zu "+ d);}
Code:
1.75432 wird mit (int) zu 1.75
1.75432 wird mit round zu 1.75
1.75999 wird mit (int) zu 1.75
1.75999 wird mit round zu 1.76
Ne, ich wil schon runden, kann mir jemand sagen wie genau ich jetzt 17,559 runden kann, an sich wollte ich genau das ergebniss haben mit dne zwei nachkommastellen was ich mit der ersten Methode auch raus bekam, aber jetzt brauche ich in meinem Programm doch leider nen gerundeten wert.
weil irgendwie bei 12-10.99 ein ergebniss von 1.0099999998 heraus kommt, ist doch irgendwie bescheuert.