- Registriert
- 25.01.06
- Beiträge
- 238
hi leute
hab mal ne frage..
Es geht um folgendes ich hab einen double wert und versuche diesen so weit zu erweitern, dass er eine ganze Zahl wird.
Also folgendes
aus : 12.3123
sollte 123123 werden (mit einem vermerk es wurde um 4 * 10 erweitert)
So gedanklich betrachtet macht es ja genau das
aber aus dem log geht folgendes hervor
weiss einer wie ich dieses Problem umgehen kann bzw. welche andere Methode eher passt zu meinem Problem
Schon mal danke im voraus für antworten
hab mal ne frage..
Es geht um folgendes ich hab einen double wert und versuche diesen so weit zu erweitern, dass er eine ganze Zahl wird.
Also folgendes
aus : 12.3123
sollte 123123 werden (mit einem vermerk es wurde um 4 * 10 erweitert)
Code:
public static void main(String[] args) {
double b= 12.33123412;
int q=0;
while((b%1)!=0){
System.out.println(b);
b=b*10;
q++;
System.out.println(b);
System.out.println(q);
}
System.out.println(q+" "+b);
}
So gedanklich betrachtet macht es ja genau das
aber aus dem log geht folgendes hervor
durch das modulo werden am ende periode 9 angehängt dem entsprechend läuft es immer bis 15 (egal was ich eingebe)12.33123412
123.31234119999999
1
123.31234119999999
1233.123412
2
1233.123412
12331.23412
3
12331.23412
123312.3412
4
123312.3412
1233123.412
5
1233123.412
1.2331234120000001E7
6
1.2331234120000001E7
1.2331234120000002E8
7
1.2331234120000002E8
1.2331234120000002E9
8
1.2331234120000002E9
1.2331234120000002E10
9
1.2331234120000002E10
1.2331234120000002E11
10
1.2331234120000002E11
1.2331234120000002E12
11
1.2331234120000002E12
1.2331234120000002E13
12
1.2331234120000002E13
1.2331234120000002E14
13
1.2331234120000002E14
1.2331234120000002E15
14
1.2331234120000002E15
1.2331234120000002E16
15
15 1.2331234120000002E16
weiss einer wie ich dieses Problem umgehen kann bzw. welche andere Methode eher passt zu meinem Problem
Schon mal danke im voraus für antworten