gpt4 book ai didi

java - BigDecimal.floatValue 与 Float.valueOf

转载 作者:行者123 更新时间:2023-11-30 07:21:27 27 4
gpt4 key购买 nike

有没有人遇到过这个:

System.out.println("value of: " + Float.valueOf("3.0f")); // ok, prints 3.0
System.out.println(new BigDecimal("3.0f").floatValue()); // NumberFormatException

我认为这里缺乏一致性是一个错误,其中 BigDecimal(String) 不遵循与 Float.valueOf() 相同的规范(我检查了 JDK 文档)。

我正在使用一个强制我通过 BigDecimal 的库,但有时我必须将“3.0f”发送到那里。是否有已知的解决方法(库中无法访问 BigDecimal)。

最佳答案

the documentation 之后,第二个示例将永远无法运行。没有在字符串中提及任何关于 f 的内容:

The String representation consists of an optional sign, '+' ('\u002B') or '-' ('\u002D'), followed by a sequence of zero or more decimal digits ("the integer"), optionally followed by a fraction, optionally followed by an exponent...

解决方法可能是简单地从字符串中剥离 f。那么它应该是有效的。

关于java - BigDecimal.floatValue 与 Float.valueOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387011/

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