gpt4 book ai didi

java - 将字符串添加到列表中会在 double * parsed int 上引发 Integer NFE

转载 作者:行者123 更新时间:2023-12-02 04:34:27 25 4
gpt4 key购买 nike

我有一个要组合的字符串列表。

        x = "1"; 
Integer.parseInt(x); //does not throw an exception
out.add((43.244 * Integer.parseInt(x)) + ""); //throws an exception

正在 throw

        Caused by: java.lang.NumberFormatException: For input string: "43.244"

我对Java的理解是Integer应该扩宽为Double,相乘,用+""转为字符串

我这里有什么误解吗?

编辑:

截断的堆栈跟踪

    .... FXML trace ....
Caused by: java.lang.NumberFormatException: For input string: "43.244"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
... etc ...

最佳答案

Integer永远不会扩大到 Double 。您可能会认为int可以扩大到 double ,这是事实。但是Integer.parseInt专门寻找适合 int 的文本模式。仅当 Integer.parseInt返回 int*运算符将其扩大到 double用于乘法。

使用Double.parseDouble相反,生成 double直接,因为 "43.244"不是 int 的表示,但是 double .

关于java - 将字符串添加到列表中会在 double * parsed int 上引发 Integer NFE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31013494/

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