java – 将浮点数舍入为2位小数的最佳做法是什么?
发布时间:2020-12-15 07:36:15 所属栏目:Java 来源:网络整理
导读:参见英文答案 How to round a number to n decimal places in Java????????????????????????????????????29个 我正在使用eclipse Android SDK. 我需要将浮点值舍入为2位小数.我通常使用数学库使用下一个“技巧”. float accelerometerX = accelerometerX * 1
参见英文答案 >
How to round a number to n decimal places in Java????????????????????????????????????29个
我正在使用eclipse Android SDK. 我需要将浮点值舍入为2位小数.我通常使用数学库使用下一个“技巧”. float accelerometerX = accelerometerX * 100; accelerometerX = round(accelerometerX); Log.d("Test","" + accelerometerX/100); 但我觉得这不是最好的方法. 是否有图书馆可以进行这些类型的操作? 提前致谢. 解决方法
我在2年前使用Java中的统计数据,我仍然得到一个函数的代码,允许您将数字四舍五入到您想要的小数位数.现在你需要两个,但也许你想用3来比较结果,这个功能给你这个自由.
/** * Round to certain number of decimals * * @param d * @param decimalPlace * @return */ public static float round(float d,int decimalPlace) { BigDecimal bd = new BigDecimal(Float.toString(d)); bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP); return bd.floatValue(); } 您需要决定是否要向上或向下舍入.在我的示例代码中,我正在四处寻找. 希望能帮助到你. 编辑 如果你想在它们为零时保留小数位数(我猜它只是为了向用户显示),你只需要将函数类型从float更改为BigDecimal,如下所示: public static BigDecimal round(float d,BigDecimal.ROUND_HALF_UP); return bd; } 然后以这种方式调用函数: float x = 2.3f; BigDecimal result; result=round(x,2); System.out.println(result); 这将打印: 2.30 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |