我在Android工作,做一个我有顶点的多边形,问题是,有大于1的顶点,它们是浮点数。
我见过一个代码,其中one的值以这种方式处理:
int one = 0x10000;
我有这样的浮动值:
float verticesflotantes[]={//Arreglo de Vertices Flotantes
1.0000f, 1.0000f, 4.2361f,
1.0000f, 1.0000f, -4.2361f,
1.0000f, -1.0000f, 4.2361f,
1.0000f, -1.0000f, -4.2361f,
-1.0000f, 1.0000f, 4.2361f,
-1.0000f, 1.0000f, -4.2361f,
-1.0000f, -1.0000f, 4.2361f,
-1.0000f, -1.0000f, -4.2361f,
4.2361f, 1.0000f, 1.0000f,.... continue...
但我需要的vertexarray是一个int,我试试这个:
int vertices[] = new int[verticesflotantes.length];
for(int i = 0;i<verticesflotantes.length;i++){
// 1 = 65536
// 5 = 1 = 65536
// 5 = 65536
// x = x*65536/5
float regla3 = verticesflotantes[i]*65536/5;
String hexadecimal = Float.toHexString(regla3);
vertices[i]= Integer.parseInt(hexadecimal,16);
}
但这给了我一个错误:
无效的int:&#34; 0x1.99999ap13&#34;
帮助我感到困惑......
答案 0 :(得分:0)
你得到了NumberFormatException,因为你解析了一个&#34;浮点字符串&#34;在Integer.parseInt(...)
函数中。
也许你可以这样做:
int regla3 = (int) verticesflotantes[i]*65536/5; // get the integer part
// well... now you have integer part, I think there is nothing we need to do.
vertices[i] = regla3;