参见英文答案 > 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, int decimalPlace) { BigDecimal bd = new BigDecimal(float.toString(d)); bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); return bd;}
然后以这种方式调用函数:
float x = 2.3f;BigDecimal result;result=round(x,2);System.out.println(result);
这将打印:
2.30
总结 以上是内存溢出为你收集整理的java – 将浮点数舍入为2位小数的最佳做法是什么?全部内容,希望文章能够帮你解决java – 将浮点数舍入为2位小数的最佳做法是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)