Pourquoi est-ce si difficile à trouver? J'ai besoin de convertir float event.getY()
en un int.Android Float To Int
Est-ce possible?
event.getY().intValue()
ne fonctionnera pas du tout.
Des idées?
Pourquoi est-ce si difficile à trouver? J'ai besoin de convertir float event.getY()
en un int.Android Float To Int
Est-ce possible?
event.getY().intValue()
ne fonctionnera pas du tout.
Des idées?
Uhhh, oui, que diriez-vous:
int y = (int)event.getY();
Vous voyez getY()
retourne uniquement un flotteur pour les appareils qui ont une précision sous-pixel.
Juste jetteras:
int val = (int)event.getY();
Ceci est vraiment un commentaire, pas une réponse à la question. Veuillez utiliser "ajouter un commentaire" pour laisser un commentaire à l'auteur. – Gaffi
en utilisant
Math.round(yourFloat);
est mieux que
(int)yourFloat;
Il est tout au sujet de la précision. Si vous utilisez (int)
, vous obtiendrez des nombres après le retrait du point. Si vous utilisez Math
, vous obtiendrez un nombre arrondi. Il ne semble pas comme un grand exemple deal.For, si vous essayez d'arrondir quelque chose comme 3.1, les deux méthodes produiraient le même résultat - 3.
Mais prendre 3.9 ou 3.8. Il est pratiquement 4, mais
(int)3.9 = 3
alors
Math.round(3.9) = 4
Qu'en est-il de (int) (some_float + 0.5)? –
Le résultat dépend de la valeur de 'some_float'. S'il a 1 point après le point, comme x.5 à x.9, alors le résultat sera x + 1 '(x.5 + 0.5 = x + 1)', si x.0 à x.04 - juste x ' (x.4 + 0.5 = x.9) '. Mais encore, cela ne fonctionnera pas comme Math.round. 1,46 + 0,5 = 1,96. (int) 1.96 = 1. Dans ce cas, pour obtenir un résultat précis, vous devez avoir un certain float + 0.5555555555 ... infinity –
Je ne vois pas le problème. Je m'attendais à ce que 1,46 soit arrondi à 1 car il est inférieur à 1,5. –
Math.round() va arrondir le flotteur entier le plus proche.
Il renvoie toujours un flotteur. Peut-être que vous voulez dire que le flotteur représente un nombre entier? –
Correct. Sur les appareils qui n'ont pas de précision sous-pixel, le flottant est toujours quelque chose comme 235.0. Vous pouvez simplement lancer un int pour obtenir la valeur du pixel. – CaseyB
Merci cela a fonctionné. – shaneburgess