我把这段代码放到我的start()方法中:
float dummy = -4.3219876F;
int rounded = MathUtil.round(dummy);
System.out.println("Float " + dummy + " rounded = " + rounded);
double dummy2 = -4.3219876;
long rounded2 = MathUtil.round(dummy2);
System.out.println("double " + dummy + " rounded = " + rounded2);
打印出来:
Float -4.3219876 rounded = -3
double -4.3219876 rounded = -3
圆形方法如下所示:
public static int round(float a) {
return (int)(a + 0.5f);
}
如果整数截断是用数学家的方式定义的(最大整数小于或等于数字)那么-3.8的截断将是-4,这样可以正常工作。但它没有这样定义。这个方法应该是这样写的:
public static int round(float a) {
if (a < 0) {
return (int)(a - 0.5f);
} else {
return (int)(a + 0.5f);
}
}
答案 0 :(得分:1)
好的,我已经发现如果我使用java.lang.Math而不是com.codename1.util.MathUtil,即使我将它发送到我的Android之后也能正常工作。我避免使用java.lang.Math,因为MathUtil的存在让我相信Math是一个禁止的类。我应该避免使用MathUtil类(它不起作用)吗?