Konwersj FLOAT na INT

0

Mam problem, mam deklaracje

int x1 = 10;
int y1 = x1/(3+x1);
int x2 = 27;
int y2 = x2/(3+x2);

te punkty sa mi potrzebne do tego aby

Graphics g ....

i chce miec mozliwosc narysowania:
g.drawLine(x1,y1,x2,y2);

gdzie x1,y1,x2,y2 musza byc typu int

Ale niestety nie rysuje mi tegoo, bo y1 i y2 maja brzydie wartosci z kropka. Wiec jak je skonwertowac do typu Int ????

0

Witam,
int y1 = (int)(x1/(3+x1));
i
int y2 = (int)(x2/(3+x2));

0

Problem polega na tym, że przy deklaracji:

int x1 = 10;
int y1 = x1/(3+x1);

Wykonuje ci się dzielenie dziesiętne div

y1 = 10 / 13;
y1 = 0;

Przez co czasami mogą wyjść bzdury, proponuje dokonać wsztkich obliczeń na float lub double z założeniem, że jedna jedntostka równa się powiedzmy 0.1 a na koniec pomnożyć wszystko *10 i zrobić rzutowanie na int np:

double  x1 = 1;
double y1= x1/(0.3+x1);
double x2 = 2.70;
double y2 = x2/(0.3+x2);

int x1_dec = (int)(x1*10);
int x2_dec = (int)(x2*10);
int y1_dec = (int)(y1*10);
int y2_dec = (int)(y2*10);
0

DZIEKI :)

0

Mozna tez tak np.

Pamietajac ze Double to obiekt a double to typ

Double cos = new Double(234.5);
int cos2 = cos.intValue();

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0