2011-04-28 80 views
0

我想從小數點分離浮點值。在android中的浮點值操作

for ex: 
Float f = 3.5 

比我想

int value1 = 3 
int value2 = 5 
and if f = 4.0 than, 
int value1 = 4 
int value2 = 0 

但請我不能用字符串操作做到這一點。像斯普利特

感謝

+1

如果有多個小數位,例如3.54321,您希望value2是多少? – NickT 2011-04-28 17:20:08

回答

0

如果你只是想在值1個位數和值2的十分之一的數字,你可以這樣做:

value1 = (int)f; 
value2 = ((int)(f * 10)) % 10; 
+0

但如果f> Integer.MAX_VALUE,那可能不起作用。 – Matt 2011-04-28 17:27:58

+0

@Matt,真的,它會溢出。然後他可以做f = f - value1;首先爲value2,這將工作。 – 2011-04-28 17:31:44

+0

第一行仍然不起作用,即將float> Integer.MAX_VALUE轉換爲整數將無法工作。所以value1永遠不會是準確的。 – Matt 2011-04-28 17:39:27

1

只是你能做的就是

int integer_part=(int)f; 
float float_part=(f-integer_part); 
string string_f=f+""; 
int float_part=f*(string_f.length()-1)*10 
+0

你有兩個同名的不同類型的變量。除此之外,它是一個有趣的解決方案 – 2011-04-28 17:35:44

+0

這與John的解決方案具有相同的問題,即如果f> Integer.MAX_VALUE,則無法將其轉換爲有用的int。 – Matt 2011-04-28 17:41:57

+0

您可以使用很長時間,順便說一句,如果您可以針對您的問題使用字符串 – 2011-04-28 17:55:28