this.promien = Math.sqrt(Math.abs((this.x * this.x) + (this.y * this.y)));
并且x = 0.965(...)y = -15.285(...)。当我试图解决这个问题时,这个abs被添加了。 this.promien总是0,我不知道为什么。我重新启动Android Studio,没有帮助。有什么我看不到的东西吗?
public class Pomiary {
public Pomiary() {
}
public Pomiary(double x, double y, double z, Date data, int seria) {
this.x = x;
this.y = y;
this.z = z;
this.data = data;
this.promien = Math.sqrt(Math.abs((this.x * this.x) + (this.y * this.y)));
this.suma = Math.abs(x) + Math.abs(y) + Math.abs(z);
this.seria = seria;
}
@DatabaseField(generatedId = true)
int id;
@DatabaseField(dataType = DataType.DATE_STRING, format = "yyyy/MM/dd HH:mm:ss.SSS")
Date data;
@DatabaseField
double x;
@DatabaseField
double y;
@DatabaseField
double z;
@DatabaseField
double suma;
@DatabaseField
int seria;
@DatabaseField
double promien;
我正在调试这个应用程序,这就是我知道它的0。当x和y不等于0时,对数据库的请求返回0。
我实例化的地方:
if (MainActivity.pomiary) {
double promien = Math.sqrt(Math.pow(X,2) + Math.pow(Y,2));
Pomiary pomiary = null;
try {
pomiary =
new Pomiary(X, Y, Z,
dateFormat.parse(dateFormat.format(new Date())), iloscZapisanychSeriiWBazie);
} catch (ParseException e) {
e.printStackTrace();
}
x,y,z是磁力计的值
答案 0 :(得分:0)
您不需要abs
,因为z * z
始终是非负的,并且您正在添加两个非负数。你不可能得到零,因为其中一个产品是负面的。很高兴看到你如何创建这个对象。
如果我这样定义Pomiary
:
public class Pomiary {
double xx;
double yy;
double zz;
Date dataa;
double promien;
double suma;
int seria;
public Pomiary()
{
}
public Pomiary(double x, double y, double z, Date data, int seria)
{
this.xx = x;
this.yy = y;
this.zz = z;
this.dataa = data;
this.promien = Math.sqrt(this.xx * this.xx + yy * this.yy);
this.suma = Math.abs(x) + Math.abs(y) + Math.abs(z);
this.seria = seria;
System.out.println(this.promien);
}
并称之为:
public class JavaLab23{
public static void main(String[] args) {
Pomiary p = new Pomiary(3,4,5,null,0);
System.out.println(p.promien);
}
}
我得到非零输出。