gpt4 book ai didi

android - 数字格式异常 "Invalid Double"

转载 作者:行者123 更新时间:2023-11-29 16:43:55 24 4
gpt4 key购买 nike

我必须构建一个计算器并且我正在做一些验证,代码有点长所以我只放破坏它的部分。

这是一个进行乘法的验证,当尝试乘​​以一个负数时它会中断,所有其他操作都正确完成但乘法:

else if(resulttxt.getText().toString().contains("*")){

String resultarray=resulttxt.getText().toString();
String[] split=resultarray.split("\\*");
finalresult = Double.valueOf(split[0]) * Double.valueOf(split[1]);

if (finalresult<0){
negative=true;
}else{
negative=false;
}
resulttxt.setText(String.valueOf(finalresult));

resulttxt 是从 TextView 接收的,它通过点击数字或符号获取数据,这些数字或符号也是 TextView(不是按钮,但它们确实有点击监听器)当点击 = 符号时操作完成。

例如,如果我尝试执行 -6*45,则会引发错误:

java.lang.NumberFormatException: Invalid double: "6*45"

就像我说的一切都与加法、减法和除法一起工作,只有乘法会中断。

最佳答案

我试过在编译器中执行你的代码:

String resulttxt = "-6*45";
boolean negative = false;
if(resulttxt.contains("*")){

String resultarray=resulttxt;
String[] split=resultarray.split("\\*");
double finalresult = Double.valueOf(split[0]) * Double.valueOf(split[1]);

if (finalresult<0){
negative=true;
}else{
negative=false;
}
System.out.println(finalresult);
}

一切正常,请验证程序中使用的数据类型。

加法、乘法和除法都可以正常工作。 “-6+45、-6*45 和-6/45”(任何其他组合。我只是使用相同的)

但是对于减法,因为模式是“-6-45”,上述逻辑将失败并抛出数字格式异常。这是因为如果拆分“\-”,“-”是字符串中的第一个字符,之前没有任何内容。

因此您的拆分将失败。因此,为避免这种情况,您始终可以使用子字符串函数获取字符的最后一个索引进行拆分。

关于android - 数字格式异常 "Invalid Double",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49368814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com