java– 将浮点数舍入为2位小数的最佳做法是什么?

java– 将浮点数舍入为2位小数的最佳做法是什么?,第1张

概述参见英文答案>HowtoroundanumbertondecimalplacesinJava                                    29个我正在使用eclipseAndroidSDK.我需要将浮点值舍入为2位小数.我通常使用数学库使用下一个“技巧”.floataccelerometerX=

参见英文答案 > 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位小数的最佳做法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1103318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存