Почему так трудно узнать?Android Float To Int
public boolean onTouch(View v, MotionEvent event)
Мне нужно преобразовать float event.getY()
в инт.
Возможно ли это?
event.getY().intValue()
не будет работать вообще.
Любые идеи?
Почему так трудно узнать?Android Float To Int
public boolean onTouch(View v, MotionEvent event)
Мне нужно преобразовать float event.getY()
в инт.
Возможно ли это?
event.getY().intValue()
не будет работать вообще.
Любые идеи?
Уххх, да, как насчет:
int y = (int)event.getY();
Вы видите getY()
возвращает только поплавок для устройств, которые имеют точность субпиксельное.
Просто брось:
int val = (int)event.getY();
Это действительно комментарий, а не ответ на вопрос. Пожалуйста, используйте «добавить комментарий», чтобы оставить отзыв для автора. – Gaffi
Использование
Math.round(yourFloat);
лучше
(int)yourFloat;
Это все о точности. Если вы используете (int)
, вы просто получите номера после удаленной точки. Если вы используете Math
, вы получите округленное число. Это не похоже на большую сделку. Например, если вы попытаетесь округлить что-то вроде 3.1, оба метода приведут к такому же результату - 3.
Но возьмите 3,9 или 3,8. Это практически 4, но
(int)3.9 = 3
тогда
Math.round(3.9) = 4
Как насчет (int) (some_float + 0.5)? –
Результат зависит от значения 'some_float'. Если он имеет 1 десятичный знак после точки, например x.5 - x.9, то результатом будет x + 1 '(x.5 + 0,5 = x + 1)', если x.0 - x.04 - просто x ' (x.4 + 0,5 = x.9) '. Но все равно это не будет работать как Math.round. 1,46 + 0,5 = 1,96. (int) 1.96 = 1. В этом случае, чтобы получить точный результат, вам нужно будет иметь some_float + 0.5555555555 ... infinity –
Я не вижу проблемы. Я ожидаю, что 1.46 будет округлено до 1, так как оно меньше 1,5. –
Math.round() округляет поплавок до ближайшего целого числа.
Он всегда возвращает поплавок. Может быть, вы имеете в виду, что float представляет целое число? –
Правильно. На устройствах, которые не имеют субпиксельной точности, float всегда что-то вроде 235.0. Вы можете просто передать в int значение пикселя. – CaseyB
Спасибо, что сработали. – shaneburgess