2017-07-14 12 views
6

Mam problem w obliczeniach w Android, robię obliczeniaDlaczego obliczenia w Androidzie z php są różne?

((1 * (1 + ((0,025 * 12) * ((6-1)/12)))/6);

w PHP generuje wartość

echo ((1*(1+((0.025*12)*((6-1)/12))))/6); 

Wynik:

0,1875

Ale w Androidzie:

System.out.println(((1*(1+((0.025*12)*((6-1)/12))))/6)); 

Wynik:

0,16666666666666666

Próbowałem wszystkiego zrobić zaokrąglenie na wartości po przecinku, ale wyniki są różne. Jak wykonać dokładne obliczenia, aby móc dostosować się do podanej wartości php?

Z góry dziękuję.

Odpowiedz

6

Musisz odrzucić zwracaną wartość wszystkich liczb dziesiętnych, aby podwoić lub unieść, aby uzyskać wszystkie dziesiętne. Będzie domyślnie liczbą całkowitą, co oznacza utratę danych.

podwójne d = (((1 * (1 + ((0,025 * 12) * ((podwójne) (6 - 1)/12))))/6));
daje 1,875

podwójne C = (((1 * (1 + ((0,025 * 12) * ((6 - 1)/12))))/6));
Daje 1.666666666

Powiązane problemy