Hi,
ich würde gerne eine überladene Methode erstellen, die von einem gegebenen Double- Wert, eine bestimmte Anzahl (variabler int-Wert) von Nachkommastellen (NKS) erhält - die restlichen also abschneidet. Dann soll ein formatierter String ausgegeben werden, z.B. aus den Parametern (5.4444444,3) den String '544,444%' macht.
Die zweite Methode kommt ohne variable Nachkommastellen aus und soll standardmäßig 2 NKS ausweisen. Sie kommt zum Einsatz, falls nur ein Double-Wert angeben wird, soll aber Methode 1 in sinnvoller Weise benutzen.
Die dritte Methode soll mithilfe von 'Varargs' die Eingabe verschiedener Double-Werte ermöglichen. Auch hier soll ein Int-Wert, der die Anzahl der NKS beschreibt, berücksichtigt werden. Auch sie soll Methode 1 in sinnvoller Weise nutzen.
Hier mein Versuch:
zu Methode 1: funktioniert, er gibt mir aber bei einem Int-Wert von 4 mehr NKS aus. Bei allen anderen Werten funktioniert es. (?) Bei einem ganzzahligen Wert wird eine NKS mit Null belegt, ich hätte lieber zwei NKS.
zu Methode 2: gibt die Werte nicht richtig aus. /z.B wird aus 5 gleich 5,0% und nicht 500,00% obwohl ja die Methode 1 benutzt wird. Ist mir unverständlich.
zu Methode 3: funktioniert überhaupt nicht, ich weiß nicht, wie ich die einzelenen varargs ansprechen soll...
Würde mich freuen, falls mir jemand helfen kann.
Thx DrWood
ich würde gerne eine überladene Methode erstellen, die von einem gegebenen Double- Wert, eine bestimmte Anzahl (variabler int-Wert) von Nachkommastellen (NKS) erhält - die restlichen also abschneidet. Dann soll ein formatierter String ausgegeben werden, z.B. aus den Parametern (5.4444444,3) den String '544,444%' macht.
Die zweite Methode kommt ohne variable Nachkommastellen aus und soll standardmäßig 2 NKS ausweisen. Sie kommt zum Einsatz, falls nur ein Double-Wert angeben wird, soll aber Methode 1 in sinnvoller Weise benutzen.
Die dritte Methode soll mithilfe von 'Varargs' die Eingabe verschiedener Double-Werte ermöglichen. Auch hier soll ein Int-Wert, der die Anzahl der NKS beschreibt, berücksichtigt werden. Auch sie soll Methode 1 in sinnvoller Weise nutzen.
Hier mein Versuch:
Java:
public class PrintTools {
public static void main(String[] args) {
// TODO Auto-generated method stub
// double zahl1 = IOTools.readDouble ("wert?");
// int zahl2 = IOTools.readInteger("wieviele nachkommastellen?");
System.out.println(alsProzent(5,2)+ "%");
}
public static String alsProzent(double zahl1, int zahl2) {
zahl2 = zahl2 + 2;
double zahl4 = Math.pow(10, zahl2);
zahl1 = Math.round( zahl1 * zahl4 ) / zahl4;
zahl1 = zahl1 *100;
String zahl11 = Double.toString(zahl1);
zahl11 = zahl11.replace('.', 'x');
return zahl11;
}
public static String alsProzent(double zahl1) {
alsProzent(zahl1, 2);
String zahl11 = Double.toString(zahl1);
zahl11 = zahl11.replace('.', 'y');
return zahl11;
}
public static String alsProzent(int zahl2, double ... zahl1Werte) {
for (double x : zahl1Werte)
alsProzent(x, zahl2);
return zahl11;
String zahl11 = Double.toString(zahl5);
zahl11 = zahl11.replace('.', 'y');
return zahl11;;
}
}
zu Methode 1: funktioniert, er gibt mir aber bei einem Int-Wert von 4 mehr NKS aus. Bei allen anderen Werten funktioniert es. (?) Bei einem ganzzahligen Wert wird eine NKS mit Null belegt, ich hätte lieber zwei NKS.
zu Methode 2: gibt die Werte nicht richtig aus. /z.B wird aus 5 gleich 5,0% und nicht 500,00% obwohl ja die Methode 1 benutzt wird. Ist mir unverständlich.
zu Methode 3: funktioniert überhaupt nicht, ich weiß nicht, wie ich die einzelenen varargs ansprechen soll...
Würde mich freuen, falls mir jemand helfen kann.
Thx DrWood