2013-12-04 4 views
3
float NormValue = value*80 ; 
float color = Color.argb(0xFF, NormValue, 0, 0); 

Это часть моего кода. Эта переменная (NormValue) сохраняет результат в поплавке. Но во второй строке я не могу использовать эту переменную, так как она должна быть преобразована в int. Как мне это сделать. Любая помощь?Как конвертировать float в int: android

+0

вы можете наложить его по int путем написания (int) цвета. – AkashG

ответ

1

Попробуйте это:

float NormValue = value*80 ; 
int temp = (int)NormValue; 
float color = Color.argb(0xFF, temp, 0, 0); 
5

В зависимости от масштаба вашей NormValue.

Обычно простой тип броска будет делать:

(int)NormValue 

Но вы можете масштабировать NormValue в диапазоне 0..255 первых, поскольку Color.argb() использует только младшие 8 бит ИНТ переданных значений in.

1

Android - это Java, не так ли? Вы можете просто перевести его в int так.

float f=0.2; 
int i; 

i = (int)f; 
1

Попробуйте это.

Преобразование его в строку

String.valueOf(value); 

, а затем преобразовать его в целое

Integer.valueOf(string); 

Вы также можете попробовать литье это Int

Int i = (int) your_float_value 
+0

Спасибо всем, но я решил это по-своему ... – Aswathy

0

Вам действительно нужно использовать поплавок в первое место? У вас есть два варианта:
1. Использовать заливку int normInt = (int) NormValue; но здесь вы должны быть готовы, чтобы вы потеряли десятичные точки. например: 8.61 будет 8
2. Второй способ первого раунда NormValue затем использовать литье.

12

Попробуйте это ..

Нет необходимости типажfloat к int просто использовать Math.round()

float NormValue = value*80 ; 
float color = Color.argb(0xFF, Math.round(NormValue), 0, 0); 
Смежные вопросы