Konwersja typów numerycznych

0

Mam pytanie. W książce JAVA Podstawy, wydanie IX na stronie 75 jest pokazane, że konwersja z typu int na double jest dozwolona, a stronie wcześniej jest dobrze wytłumaczone, że to jest niedozwolone, bo wiadomo:

int n = 123456789;
double f = n;

i wypluje

1.23456789E8

więc to błond w książce czy czegoś nie rozumiem?

1

I co w tym dziwnego?

1.23456789E8 to przecież 1.23456789 * 10^8.

0

Oczywiście masz rację. Nie wiedziałem jeszcze, że e to skró to exp czyli funkcji wykładniczej i że to to samo. Czyli w książce wszystko gra. Problem jest tylko z int na float + reszta niedozwolonych konwersji. Dzięki.

0

Trochę źle do tego podchodzisz, możesz sobie normalnie konwertować typy liczbowe, to nie jest tak że niektóre są dozwolone, a inne nie. Chodzi tutaj tylko o to że możesz stracić informacje, posługując się według Ciebie "zakazaną konwersją".

double d = 4.5;
int i = d; // strata informacji
d = i; tutaj jest 4.0

Może też być odwrotnie, typy zmienno przecinkowe przechowują liczbę tylko z dokładnością do pewnego miejsca po przecinku. Zamieniając dużą liczbę na zmiennoprzecinkową i z powrotem możesz sobie "uciąć" cześć liczb.

0

Oczywiście rozumiem, że mogę sobie konwertować co chcę tylko chodzi o to żeby uniknąć rzutowania. Już rozkminiłem, dopiero zaczynam ;p

1

Czasami się nie da. Nigdy nie podzielisz 10 / 4 * 2 tak żeby Ci wyszło 5 bez rzutowania na float.

0

@sig Porównujesz strict-typed język z weak-typed?

Poza tym dzielenie intów w Javie musi być intem, a dzielenie intów w pythonie może być floatem.

0

Cześć mam stworzyć program który konwersuje liczby rzeczywiste na reprezentację zmiennopozycyjną
w znormalizowanym formacie IEEE-754 dla zadanego dowolnego s.owa maszynowego
o szerokości d z określoną liczbą bitów dla mantysy t m . Dopiero zaczynamprzygode z programowaniem . Moglibyście w jakis sposób mnie nakierować ?

0

Niestety w żade sposób mi to nie pomogło :( Wole jakies wskazówki niż gotowy i skomplikowany jak dla mnie program. Nie rozumiem w jaki posób program ma działać. Rozumiem w jaki sposob odbywa sie przeliczanie, jednak nie wiem jaki stworzyc algoryt aby poprosic uzytkownika o podanie liczby szerekosci słowa i liczby bitów dla mantysy program przeliczył :/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.