LINUX.ORG.RU

Помогите с апплетом


0

0

Я уже неделю бьюсь с одним глюком...

Пишу 2-ю лабу по Java, вариант 215: http://cs.ifmo.ru/education/discipline/iaps/task.shtml

Проблема заключается в том, что на нечетных значениях r calx[XY] возвращают неверные значения.
Вот кусочек лабы:

	public int calcX(double X)
	{
		return new Long(Math.round(getWidth()/2 + getWidth()*X/heftX)).intValue();
	}
	//--------------------------------------------------------
	public int calcY(double Y)
	{
		return new Long(Math.round(getHeight()/2 - getHeight()*Y/heftY)).intValue();
	}

А вот вызов метода, где проявляется баг:

		g.drawRect(calcX(0), calcY(0), calcX(r/2) - calcX(0), calcY(-r) - calcY(0));

То есть, если r четный, то все OK, а если нечетный, то r/2 округляется в меньшую сторону.
Как такое может происходить?
Если кому интересно, вот весь текст лабы: http://ifolder.ru/1542907
anonymous

>g.drawRect(calcX(0), calcY(0), calcX(r/2) - calcX(0), calcY(-r) - calcY(0));

pi@pi-laptop:~$ cat Test.java 
public class Test{
        public static void main(String[] args){
                System.out.println(3/2);
                System.out.println(3/2.0);
        }
}
pi@pi-laptop:~$ javac Test.java 
pi@pi-laptop:~$ java Test
1
1.5
pi@pi-laptop:~$ 

Pi ★★★★★
()
Ответ на: комментарий от Pi

Ничего себе!
Вот так тонкости.

Спасибо, наконец таки лед тронулся!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.