前言:
此刻各位老铁们对“java输出指定位数小数”大概比较讲究,各位老铁们都想要了解一些“java输出指定位数小数”的相关文章。那么小编也在网络上网罗了一些有关“java输出指定位数小数””的相关资讯,希望你们能喜欢,小伙伴们一起来学习一下吧!考虑以下浮点数和我们想要保留的小数位数:
float v = 14.9877655f; int d = 5;
因此,四舍五入后的预期结果是14.98777。我们可以通过至少三种方式直接解决这个问题。例如,我们可以依靠BigDecimal API,如下所示:
public static float roundToDecimals(float v, int decimals) { BigDecimal bd = new BigDecimal(Float.toString(v)); bd = bd.setScale(decimals, RoundingMode.HALF_UP); return bd.floatValue(); }
首先,我们从给定的浮点数创建一个BigDecimal数字。其次,我们将此BigDecimal缩放到所需的小数位数。最后,我们返回新的浮点数值。另一种方法可以依赖于DecimalFormat,如下所示:
public static float roundToDecimals(float v, int decimals) { DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(decimals); return Float.parseFloat(df.format(v)); }
我们通过setMaximumFractionDigits()定义格式,并简单地将此格式应用于给定的浮点数。返回的字符串通过Float.parseFloat()传递,以获得最终的浮点数。最后,我们可以应用一种更晦涩但自我解释的方法,如下所示:
public static float roundToDecimals(float v, int decimals) { int factor = Integer.parseInt( "1".concat("0".repeat(decimals))); return (float) Math.round(v * factor) / factor; }
你可以在捆绑的代码中练习这些示例。请随意添加你自己的解决方案。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java输出指定位数小数