java.lang.numberformatexception:无效的double:“”

java.lang.numberformatexception:无效的double:“”

得到无效的错误Double java.lang.numberformatexception invalid double:“”这是什么原因

活动1

package com.example.solarcalculator;

        import android.os.Bundle;
        import android.widget.Button;
        import android.annotation.SuppressLint;
        import android.app.Activity;
        import android.view.Menu;
        import android.view.View;
        import android.view.View.OnClickListener;
        import android.widget.EditText;
        import android.app.AlertDialog;
        import android.content.Intent;

        @SuppressLint("UseValueOf")
        public class MainActivity extends Activity {
            private EditText input1;
            private EditText input2;
            private EditText input3;
            private EditText input4;
            private EditText input5;
            private MainActivity mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        setContentView(R.layout.activity_main);

        input5 = (EditText) findViewById(R.id.input5);
        Button button1 = (Button) findViewById(R.id.button1);
        input4 = (EditText) findViewById(R.id.input4);
        input1 = (EditText) findViewById(R.id.input1);
        input2 = (EditText) findViewById(R.id.input2);
        input3 = (EditText) findViewById(R.id.input3);
        button1.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("unused")
            private AlertDialog show;

            @SuppressLint("UseValueOf")

我得到java.lang.numberformatexception无效的双:“”logcat中的错误任何人请帮忙


陪伴而非守候
浏览 797回答 3
3回答

翻过高山走不出你

原因是,“”不是有效的双倍。您需要先测试String或捕获此类异常double w;try {    w = new Double(input3.getText().toString());} catch (NumberFormatException e) {    w = 0; // your default value}

吃鸡游戏

double的值取决于设备的语言。例如,对于法语设备,数字0.179927变为0,179927,由于逗号,NumberFormatException在解析时将始终抛出一个double。您需要将分隔符从a更改comma为a point。您可以通过设置区域设置或使用更改分隔符来更改分隔符DecimalFormatSymbols。如果希望分组分隔符为点,则可以使用欧洲语言环境:NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);DecimalFormat df = (DecimalFormat)nf;或者,您可以使用DecimalFormatSymbols该类更改format方法生成的格式化数字中出现的符号。这些符号包括小数分隔符,分组分隔符,减号和百分号等等:DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);otherSymbols.setDecimalSeparator(',');otherSymbols.setGroupingSeparator('.'); DecimalFormat df = new DecimalFormat(formatString, otherSymbols);

犯罪嫌疑人X

你应该这样做。把它放在try catch块中   double w = new Double(input3.getText().toString());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android