![]() |
java - runden auf bestimmte dezimalstellenanzahl
Code:
import java.text.*; nur ist das ein STRING, angenommen, ich würde mit der zahl weiterrechnen wollen, wie würde der typ erhalten bleiben, anstatt in einen string umgewandelt zu werden? |
Re: java - runden auf bestimmte dezimalstellenanzahl
Zitat:
Code:
double zahl = 1234.56789; |
ist mir schon klar, daß ich das kann.
nur ich hätte gern gewußt, ob es denn keine möglichkeit gäbe, aus dem ergebnis der rundung heraus noch etwas arithmetisches zu machen. rein interessehalber. oder müßte ich sämtliche arithmetische operationen zuerst machen und erst am schluß dann die rundung vollführen? was wäre, wenn der gerundete wert ein zwischenergebnis wäre, daß ich nicht nur ausgeben, sondern das ich auch in irgendeiner rechnung in der gerundeten form weiterverwenden will? es muß doch eine möglichkeit geben, auf eine bestimmte stellenzahl zu runden und doch keine typenumwandlung vorzunehmen, so daß ich das ergebnis arithmetisch weiterverwerten kann. |
Du kannst Dir natürlich auch über DecimalFormat.parse() einen NumberValue besorgen und über doubleValue() wiederum die gerundete double -Zahl zum Weiterrechnen holen.
Nachzulesen im Java 2 Platform SE v1.3.1 . |
Code:
double zahl2 = doubleValue(df.parse(zahl)); |
Code:
double zahl2 = (df.parse(zahl)).doubleValue(); |
Code:
import java.text.*; runden.java [12:1] cannot resolve symbol symbol : method parse (double) location: class java.text.DecimalFormat System.out.println(df.parse(zahl).doubleValue()); ^ 1 error Errors compiling runden(). |
hm, ist mir mittlerweile schon klar, warum das nicht geht (nur leider kann ich den beitrag nimma editieren), den parser mit double zu füttern, ist natürlich unsinn.
ich müßte zuerst das ergebnis als string haben und dann damit den parser füttern, nur das problem ist, daß im string das kommazeichen kein PUNKT mehr ist, sondern ein BEISTRICH, damit kommt der parser dann auch nicht mehr zurecht. mir ist jetzt nur noch eine reichlich unelegante methode eingefallen, nämlich die: Code:
double zahl = 1234.5678; |
Re: java - runden auf bestimmte dezimalstellenanzahl
Zitat:
Code:
|
ist ein interessantes verfahren, nur bist du dir sicher, daß das nicht
Code:
dNeueZahl = (double) ((int) (zahl * 100)) / 100; außerdem hat das ganze einen haken, du bekommst nämlich als ergebnis 1234.56, die letzte stelle wird also nicht gerunden, sondern es werden lediglich die unerwünschten kommastellen abgeschnitten. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag