有没有人遇到过这个:
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 在库中无法访问)。