gpt4 book ai didi

java - 将 String 解析为 Float 值时出现 NumberFormatException

转载 作者:行者123 更新时间:2023-12-01 18:39:27 26 4
gpt4 key购买 nike

System.out.println("Enter a number: ");

String in1 = input.nextLine();

Integer input1 = Integer.valueOf(in1);
Float input2 = Float.parseFloat(in1);
Double input3 = Double.valueOf(in1).doubleValue();

System.out.println();
System.out.println("Enter another number: ");

String in2 = input.nextLine();
Integer input21 = Integer.valueOf(in2);
Float input22 = Float.parseFloat(in2);
Double input23 = Double.valueOf(in2).doubleValue();

FloatN fco = new FloatN();

System.out.println();
System.out.println("The sum of both of your numbers is: " + fco.add(input2, input22));
done = true;

我很清楚这个程序完全不切实际,我编写它只是为了练习解析、泛型和接口(interface)。我尝试了 Integer,效果很好,但是在尝试 Float 和 Double.add() 函数时,出现 3 个错误:

在 java.lang.NumberFormatException.forInputString

在 java.lang.Integer.parseInt

在 java.lang.Integer.valueOf

我删除了整数解析器,程序运行良好。我很困惑为什么只有在输入十进制值时才会出现错误,并且希望有人帮助指出到底是什么导致了异常,这样我就可以避免将来出现任何类似的错误,因为删除整数解析器会删除IntegerN 类中的任何功能。

此外,如果有人出于某种原因需要 FloatN 类:

public static class FloatN implements Summization<Float>{
public FloatN(){}
public Float add(Float a, Float b)
{
return a + b;
}
}

Summization 是一个带有 add() 方法的通用接口(interface)。

提前致谢。

最佳答案

如果您输入十进制值作为输入,Integer.parseInt() 方法将无法解析它。如果您仍然希望将它们全部包含在代码中,则必须获取该 Float 值的 int 值。您可以使用 intValue() 方法:

    Float input2 = Float.parseFloat(in1);
Integer input1 = Integer.valueOf(input2.intValue());

关于java - 将 String 解析为 Float 值时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537121/

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