Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
infinity double操作产生infinity java/android studio_Java_Android_Android Studio_Double - Fatal编程技术网

infinity double操作产生infinity java/android studio

infinity double操作产生infinity java/android studio,java,android,android-studio,double,Java,Android,Android Studio,Double,我试着做除法(双精度/双精度),结果是无穷大。有人能帮我解释一下为什么会这样吗 我搜索了一些论坛,但没有找到答案 我有这样的想法: public class CalculoSapIsolada extends AppCompatActivity { double areaAcoX; double numeroBarrasX; double areaBarraX; @Override protected void onCreate(Bundle saved

我试着做除法(双精度/双精度),结果是无穷大。有人能帮我解释一下为什么会这样吗

我搜索了一些论坛,但没有找到答案

我有这样的想法:

public class CalculoSapIsolada extends AppCompatActivity
{
    double areaAcoX;
    double numeroBarrasX;
    double areaBarraX;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculo_sap_isolada);

        //Here is where i get the value of areaBarraX

        if(SapataIsolada.getAço()==50)
        {
            final Spinner staticSpinner = (Spinner) findViewById(R.id.spinner_diametro_aço_x);
            ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter.createFromResource(this, R.array.diametro_aço_CA_50, android.R.layout.simple_spinner_item);
            staticAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            staticSpinner.setAdapter(staticAdapter);
            staticSpinner.setPrompt("Selecione o diâmetro da armadura");
            staticSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
            {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) 
                {
                    Object item = adapterView.getItemAtPosition(i);
                    if (i == 0) {
                    diametroAçoX = 0.5;
                    areaBarraX = 0.196;
                    }
                    if (i == 1) {
                    diametroAçoX = 0.63;
                    areaBarraX = 0.31;
                    }
                    if (i == 2) {
                    diametroAçoX = 0.8;
                    areaBarraX = 0.5;
                    }
                    if (i == 3) {
                    diametroAçoX = 1;
                    areaBarraX = 0.785;
                    }
                    if (i == 4) {
                    diametroAçoX = 1.25;
                    areaBarraX = 1.22;
                    }
                    if (i == 5) {
                    diametroAçoX = 1.6;
                    areaBarraX = 2.01;
                    }
                    if (i == 6) {
                    diametroAçoX = 2;
                    areaBarraX = 3.14;
                    }
                }

                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {

                }
           });
        }
    /* the value of areaAcoX is calculated previously and during the testrun it receives areaAcoX=11.36016 and the value of areaBarraX=0.5 */
    numeroBarrasX=areaAcoX/areaBarraX;

        Button calcular =(Button)findViewById(R.id.calcular_resultado);
        calcular.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
            
                //in altura.setText, areaAcoX==11.36016

                TextView altura = (TextView)findViewById(R.id.alturaTotal);
                altura.setText(""+areaAcoX);
            
                //In ladoLtopo.setText, areaBarraX==0.5

                TextView ladoLtopo = (TextView)findViewById(R.id.ladoL_topo);
                ladoLtopo.setText(""+areaBarraX);

                //In numBarrasX.setText, numeroBarrasX==Infinity

                TextView numBarrasX = (TextView)findViewById(R.id.numeroBarras_x);
                numBarrasX.setText(""+numeroBarrasX);
            
            
        });


    }
}
公共类CalculoSapIsolada扩展了AppCompative活动
{
双面积;
双倍数值;
双区Barrax;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u calculo\u sap\u isolada);
//这里是我得到areaBarraX值的地方
if(SapataIsolada.getAço()==50)
{
最终微调器staticSpinner=(微调器)findViewById(R.id.Spinner_diametro_aço_x);
ArrayAdapter staticAdapter=ArrayAdapter.createFromResource(这是R.array.diametro_ço___CA_50,android.R.layout.simple_spinner_项);
staticAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
staticSpinner.setAdapter(staticAdapter);
setPrompt(“Selecione o di–metro da armadura”);
staticSpinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView AdapterView、View视图、int i、long l)
{
对象项=adapterView.getItemAtPosition(i);
如果(i==0){
diametroAçoX=0.5;
areaBarraX=0.196;
}
如果(i==1){
diametroAçoX=0.63;
areaBarraX=0.31;
}
如果(i==2){
diametroAçoX=0.8;
areaBarraX=0.5;
}
如果(i==3){
diametroAçoX=1;
areaBarraX=0.785;
}
如果(i==4){
diametroAçoX=1.25;
areaBarraX=1.22;
}
如果(i==5){
diametroAçoX=1.6;
areaBarraX=2.01;
}
如果(i==6){
diametroAçoX=2;
areaBarraX=3.14;
}
}
@凌驾
未选择公共无效(AdapterView AdapterView){
}
});
}
/*areaAcoX的值是先前计算的,在测试运行期间,它接收areaAcoX=11.36016和areaBarraX=0.5的值*/
numeroBarrasX=areaAcoX/AreaBarax;
Button calcular=(Button)findViewById(R.id.calcular\u resultado);
calcular.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图)
{
//在altura.setText中,areacox==11.36016
TextView altura=(TextView)findViewById(R.id.alturaTotal);
altura.setText(“+areacox”);
//在ladoLtopo.setText中,areaBarraX==0.5
TextView ladoLtopo=(TextView)findViewById(R.id.ladoL_topo);
ladoLtopo.setText(“+Areabarax”);
//在numBarrasX.setText中,numeroBarrasX==无穷大
TextView numBarrasX=(TextView)findViewById(R.id.numeroBarras_x);
numBarrasX.setText(“+numeroBarrasX);
});
}
}

我在这里没有显示的代码中有一些类似的操作,我没有在它们的值中得到无穷大错误。

用类型double的0.0除以会产生无穷大。在初始化
areaBarraX
之前,这一行可能有一个除以0.0的值:

numeroBarrasX=areaAcoX/areaBarraX;

问题似乎在于,在计算
numeroBarrasX
之前,实际上没有计算
areaBarraX
——您只需创建一个侦听器,每当单击时就会对其进行设置。如果将一个正数除以零(或将一个负数除以负零),结果将是无穷大。