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
}
吃鸡游戏
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);
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
你应该这样做。把它放在try catch块中
double w = new Double(input3.getText().toString());
- 3 回答
- 0 关注
- 796 浏览
添加回答
举报
0/150
提交
取消