为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

陪伴而非守候 2019-08-28 15:37:45
java.lang.numberformatexception:无效的double:“”得到无效的错误Double java.lang.numberformatexception invalid double:“”这是什么原因活动1package 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中的错误任何人请帮忙
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

原因是,“”不是有效的双倍。您需要先测试String或捕获此类异常


double w;


try {

    w = new Double(input3.getText().toString());

} catch (NumberFormatException e) {

    w = 0; // your default value

}


查看完整回答
反对 回复 2019-08-28
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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);


查看完整回答
反对 回复 2019-08-28
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

你应该这样做。把它放在try catch块中

   double w = new Double(input3.getText().toString());


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 796 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信