在iOS中将float转换为long

时间:2014-05-30 10:28:37

标签: c# ios unity3d long-integer

我使用Unity3D开发跨平台的移动游戏,即Android和iOS。 它是用C#编写的。

其中一个变量计算如下:

long hp;
int lv;
hp = (long)Math.Pow(1.5f, lv);

该代码适用于PC和Android。但不是在iOS中。在iOS中,即使lv=0hp的值也会变为46071824188000017409。

我尝试使用Xcode调试它,Math.Pow(1.5f, lv)的值没有问题,所以问题是长转换。我尝试使用System.Convert.ToInt64,它看起来是一样的。

iOS6和iOS7都存在问题。任何人都知道如何处理这个?

编辑:这里有一些调试:

float temp = Mathf.Pow(1.5f, lv); //returns 1
long temp2 = (long)temp; //returns 4607182418800017409

0 个答案:

没有答案