Android Float To Int - PullRequest
       1

Android Float To Int

3 голосов
/ 11 июня 2010

Почему это так сложно выяснить?

public boolean onTouch(View v, MotionEvent event)

Мне нужно преобразовать float event.getY() в целое число.

Возможно ли это?

event.getY().intValue() не будет работать вообще.

Есть идеи?

Ответы [ 4 ]

17 голосов
/ 11 июня 2010

Э-э-э, да, как насчет:

int y = (int)event.getY();

Вы видите, getY() возвращает значение с плавающей запятой только для устройств с точностью до субпикселя.

2 голосов
/ 26 декабря 2015

Использование

Math.round(yourFloat);

лучше, чем

(int)yourFloat;

Это все о точности.Если вы используете (int), вы получите цифры только после удаления точки.Если вы используете Math, вы получите округленное число.Это не кажется большой проблемой. Например, если вы попытаетесь округлить что-то вроде 3.1, оба метода дадут один и тот же результат - 3.

Но возьмите 3.9 или 3.8.Это практически 4, но

(int)3.9 = 3

, тогда как

Math.round(3.9) = 4

0 голосов
/ 16 ноября 2017

Math.round () округляет число с плавающей точкой до ближайшего целого числа.

0 голосов
/ 11 июня 2010

Просто разыграйте:

int val = (int)event.getY();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...