首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android文本输入总是给我NaN值。

Android文本输入总是给我NaN值。
EN

Stack Overflow用户
提问于 2017-08-18 09:17:23
回答 1查看 256关注 0票数 0

我不明白为什么这个代码输出总是显示NaN。有没有人能帮我找出我犯了什么错?

代码语言:javascript
复制
package com.example.user.solar_calculator;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Context;
import android.content.Intent;

import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;

public class efficiency extends Activity {
    Button button;
    EditText efficiency;
    EditText vol;

    String e,v;

    double e1,wat,v1, AC_Load_in_ampere_hour_calculation,dc;
    double load,load_vol,Total_Daily_load,lol;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_efficiency);
        initControls();
        addListenerOnButton();
    }

    public void initControls() {
        efficiency=(EditText)findViewById(R.id.editText1);
        vol=(EditText)findViewById(R.id.editText2);
        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    e1=Double.parseDouble(efficiency.getText().toString()); // Make use of autoboxing.  It's also easier to read.
                } catch (NumberFormatException e) {
                    e1=1;
                }
                try {
                    v1=Double.parseDouble(vol.getText().toString());// Make use of autoboxing.  It's also easier to read.
                } catch (NumberFormatException e) {
                    v1=1;
                }

                Bundle extras = getIntent().getExtras();
                if(extras !=null) {
                    String value = extras.getString("FOUR");
                    load=Double.parseDouble(value.toString());
                }
                wat=load_vol*(1+.1);

                AC_Load_in_ampere_hour_calculation = (load)/( v1* (e1/100));

                Total_Daily_load=AC_Load_in_ampere_hour_calculation+dc;

                Intent i = new Intent(efficiency.this, calculation.class);
                //Create the bundle
                Bundle bundle = new Bundle();
                //Add your data to bundle

                bundle.putString("seven", String.valueOf(AC_Load_in_ampere_hour_calculation));
                bundle.putString("eight", String.valueOf(Total_Daily_load));
                bundle.putString("nine", String.valueOf(dc));

                //Add the bundle to the intent
                i.putExtras(bundle);
                //Fire that second activity
                startActivity(i);
            }
        });
    }

    public void addListenerOnButton() {    
        final Context context = this;    
        button = (Button) findViewById(R.id.button);    
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-18 09:21:41

我认为引起问题的是AC_Load_in_ampere_hour_calculation = (load)/( v1* (e1/100));

因为如果v1 =0,那是不可能的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45752985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档