企业手机网站建设市场分析,网站手机验证码怎么做,做外贸网站公司哪家好,如何下载js做的网站首先#xff0c;这个NumberFormat这个类#xff0c;可以格式化各种数字。你只要稍微设置一下#xff0c;结果还是很理性的。但是#xff0c;他有那么一丢丢的bug#xff0c;不知道你知道不#xff1f;/*** 2.3F经过格式化#xff0c;竟然变成2.99啦。what the fuck .* f…首先这个NumberFormat这个类可以格式化各种数字。你只要稍微设置一下结果还是很理性的。但是他有那么一丢丢的bug不知道你知道不/*** 2.3F经过格式化竟然变成2.99啦。what the fuck .* float类型的时候值是2.3但是一经变成Double值就变成2.99999啦。* 这个format的参数是double类型的。所以在传入参数的时候就变成了对2.299999952316284进行操作。返回就过就是2.99*/private static void floatFormatTest() {float responseTime 2.3F;NumberFormat formatter;formatter NumberFormat.getNumberInstance();formatter.setGroupingUsed(false);formatter.setRoundingMode(RoundingMode.FLOOR);formatter.setMaximumFractionDigits(2);String format formatter.format(responseTime);System.out.println(format);float v Float.parseFloat(formatter.format(responseTime));System.out.println(v);}看下debug的时候这个数字到底有啥出乎意料的变化。这个时候还是OK的。还是正常的。看到啦没这个2.3Ffloat类型的数经过format的时候自动变成double类型啦。然后就不稳定啦。经过取舍之后2.3就变成啦2.29啦怎么规避这个问题在使用这个BigDecimal的时候传参数要传字符串。不然还是不准确。总结以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作具有一定的参考学习价值谢谢大家对聚米学院的支持。如果你想了解更多相关内容请查看下面相关链接