我有一个api,它接受一个数字作为字符串输入,我需要得到该数字的Float值。我目前使用Float.ParseFloat方法来获取我的String数的浮点值。
根据java documentation of Float.ParseFloat,它没有提到输入大于Float.MAX_VALUE的任何内容。
我想到这样做的一种方法是检查输入字符串的长度是否大于Float.MAX_VALUE的长度。
请建议我如何处理这个问题。
答案 0 :(得分:1)
答案 1 :(得分:1)
虽然javadoc没有说清楚,但是当我测试它时,字符串太大的parseFloat只会产生一个'无限'浮点数。您可以在创建后使用isInfinite()方法来检查值。
使用像BigDecimal这样的东西可能是一个更安全的选择,特别是如果你要对你的价值进行任何算术运算。
答案 2 :(得分:0)
指数剪辑到最大指数值。请参阅source第1197行。
也许为您的应用程序检查一些最大有用的值?
答案 3 :(得分:0)
如果数字太大,结果将设置为Float.POSITIVE_INFINITY,因为IEEE FP算法的规则要求,并且10秒测试显示。