gpt4 book ai didi

android - 从等式中显示错误的值

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:15 25 4
gpt4 key购买 nike

我正在尝试实现以下等式,但没有显示确切的值。

假设data1到data9的值为:5,1,1,1,2,1,3,1,1,y的值为2。但显示 null.original 方程式链接:https://www.researchgate.net/publication/303232034_Mathematical_Model_Development_to_Detect_Breast_Cancer_Using_Multigene_Genetic_Programming

 double term3 =Math.cos(Math.log10(data7))/(data6+data7-6.419);



double y=0.05321*Math.log10(Math.exp(data2-1.0*Math.sin(Math.cos(data8))+Math.cos(data6)-(1.0*data6)/(data1*data3*data9*Math.sin(data8)*Math.tanh(data8))))-1.573*Math.sin(Math.sqrt(data4+data6+term3))
-0.07468*Math.sin(Math.exp(data2*data9))
-0.9181*Math.log10(2.0*data4+data6+Math.sin(Math.tanh(data7)+5.626*data4*data9)+Math.sin(Math.sin(Math.sin(data8)))
+Math.sin(Math.sin(2.0*data6-7.128))+(Math.cos(data4)/(data6+data7-6.649))+(Math.cos(data4)/(data6+data7-6.634))+(Math.cos(data4)/(data4*(2.0*data6-1.479))))
+0.2919*Math.sin(Math.sin(Math.cos(data2+data5+data8)/data2+data7-6.76))
-0.07468*Math.sin(Math.sqrt(2.0*data4+data7-1.0*Math.sqrt(data6)))
-0.07468*Math.sin(data6)-((5.381*Math.pow(10, 15)*Math.cos(Math.sqrt(data2*Math.pow(data3, 2))))/(7.206*Math.pow(10, 16)*data3+7.206*Math.pow(10, 16)*data5-4.934*Math.pow(10, 17)))
-((5.381*Math.pow(10, 15)*Math.cos(Math.sqrt(data1*data3*data4)))/(7.206*Math.pow(10, 16)*data5+Math.sqrt(Math.tanh(data7))*(data7-1.0*data4+7.206*Math.pow(10, 16)*Math.cos(data6))-4.836*Math.pow(10, 17)))
+((5.258*Math.pow(10, 15)*Math.cos(data4))/(1.801*Math.pow(10, 16)*data2+1.801*Math.pow(10, 16)*data7-1.2*Math.pow(10, 17)))
+(0.4014*Math.cos(data6+data7)+Math.sqrt(data7+5.446))/((data5+Math.log10(data1)-6.585)*(Math.log10(data7)-1.0*Math.tanh(data5)-5.646*data4*data9)
+Math.sqrt(Math.tanh(data8))*(data7-1.0*data4+Math.cos(data6))+data2*Math.pow(data4, 2)*Math.cos(data2)*Math.cos(data6))-0.003903*data1*Math.cos(Math.sqrt(data2+data4+data6-1.0*Math.sqrt(data4)))*(
3.057*data1+2.0*data2-1.0*data4+data6+data7+data9+Math.cos(6.478*data6)+Math.cos(data6)-1.0*Math.sqrt(data1*data3*data6)-6.419)+((0.2919*Math.cos(Math.sqrt(data1*data3*data6)))/(2.0*data6-7.218)*(data5+data7-6.76))+5.235;

y 的值必须是 2 或 4。但它不会出现在 if else 条件中

int x= (int) y;

if(x==2 )
{
condition="B";
Toast.makeText(getApplicationContext(),"value of x is "+x,Toast.LENGTH_LONG).show();
}
else if(x==4)
{
condition="M";
Toast.makeText(getApplicationContext(),"value of x is "+x,Toast.LENGTH_LONG).show();
}

不明白问题出在哪里....请帮忙...

最佳答案

由于 y 是一个 double,计算结果不太可能正好是 2 或 4。可能发生的情况是 y 是一个很小的值当第一个条件失败时,比 2 或 4 小一点。

您可以尝试使用 long x = Math.round(y);,而不是将 y 直接转换为 int。或者(也许更好),只需检查 Math.abs(y - 2)Math.abs(y - 4) 是否小于某个小阈值(例如, .0001),以考虑可能的舍入误差。

关于android - 从等式中显示错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41662312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com