Hej, mam zadanie do przeliczania i w pewnym momecie musze odjac pewne liczby i robie to tak (fragment wyciety z programu )
class Liczenie {
private StringBuffer str1 = new StringBuffer();
Liczenie() {};
public void z10Ul(int cel, int ul) {
int index = 0;
String str = "0." + ul;
float i;
float l = Float.parseFloat(str);
while (l != 0 && index < 50) {
l = l * cel;
str = String.valueOf(l);
if (str.charAt(1) == '.') {
i = Float.parseFloat(str.substring(0, 1));
} else {
i = Float.parseFloat(str.substring(0, 2));
}
System.out.print("L=" + l + "-" + i + " = ");
l = l - i;
System.out.println(l);
str1.append(i);
index++;
}
}
}
public class Test {
StringBuffer str1 = new StringBuffer();
public static void main(String[] args) {
Liczenie l = new Liczenie();
l.z10Ul(6, 23);
}
}
wlasnie dla tych danych output to:
L=1.38-1.0 = 0.38
L=2.28-2.0 = 0.27999997 // BLAD ODEJMOWANIA, NIE WIEM Z CZEGO ON WYNIKA ;)
L=1.6799998-1.0 = 0.6799998
L=4.079999-4.0 = 0.07999897
L=0.47999382-0.0 = 0.47999382
L=2.879963-2.0 = 0.8799629
L=5.2797775-5.0 = 0.27977753
L=1.6786652-1.0 = 0.67866516
L=4.071991-4.0 = 0.07199097
L=0.4319458-0.0 = 0.4319458
L=2.5916748-2.0 = 0.5916748
L=3.5500488-3.0 = 0.5500488
L=3.300293-3.0 = 0.30029297
L=1.8017578-1.0 = 0.8017578
L=4.810547-4.0 = 0.8105469
L=4.8632812-4.0 = 0.86328125
L=5.1796875-5.0 = 0.1796875
L=1.078125-1.0 = 0.078125
L=0.46875-0.0 = 0.46875
L=2.8125-2.0 = 0.8125
L=4.875-4.0 = 0.875
L=5.25-5.0 = 0.25
L=1.5-1.0 = 0.5
L=3.0-3.0 = 0.0