安卓开发之计算结果保留两位有效数字(四舍五入)

首先获取输入框输入的数(记得强转)

yhy = Double.parseDouble(et_yhy.getText().toString());


点击按钮之后得出两位有效数字的结果

result = yhy * 0.01 * 3;
//把得到的值保留两位小数四舍五入
BigDecimal bg3 = new BigDecimal(result);
double f3 = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
tv_yhy.setText("" + f3);


这里本人用的按钮是选择期限的一个弹窗菜单如下:

点击期限布局时调用

showPopupMenu(ll_popup);

private double yhy, result;

    private void showPopupMenu(View view) {
        // View当前PopupMenu显示的相对View的位置
        PopupMenu popupMenu = new PopupMenu(this, view);
        // menu布局
        popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu());
        // menu的item点击事件
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                yhy = Double.parseDouble(et_yhy.getText().toString());
                switch (item.getItemId()) {
                    case R.id.it0:
                        tv_yue.setText("3个月");
                        result = yhy * 0.01 * 3;
                        //把得到的值保留两位小数四舍五入
                        BigDecimal bg3 = new BigDecimal(result);
                        double f3 = bg3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f3);
                        break;
                    case R.id.it1:
                        tv_yue.setText("6个月");
                        result = yhy * 0.01 * 6;
                        BigDecimal bg6 = new BigDecimal(result);
                        double f6 = bg6.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f6);
                        break;
                    case R.id.it2:
                        tv_yue.setText("9个月");
                        result = yhy * 0.01 * 9;
                        BigDecimal bg9 = new BigDecimal(result);
                        double f9 = bg9.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f9);
                        break;
                    case R.id.it3:
                        tv_yue.setText("12个月");
                        result = yhy * 0.01 * 12;
                        BigDecimal bg12 = new BigDecimal(result);
                        double f12 = bg12.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f12);
                        break;
                    case R.id.it4:
                        tv_yue.setText("15个月");
                        result = yhy * 0.01 * 15;
                        BigDecimal bg15 = new BigDecimal(result);
                        double f15 = bg15.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f15);
                        break;
                    case R.id.it5:
                        tv_yue.setText("18个月");
                        result = yhy * 0.01 * 18;
                        BigDecimal bg18 = new BigDecimal(result);
                        double f18 = bg18.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f18);
                        break;
                    case R.id.it6:
                        tv_yue.setText("21个月");
                        result = yhy * 0.01 * 21;
                        BigDecimal bg21 = new BigDecimal(result);
                        double f21 = bg21.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f21);
                        break;
                    case R.id.it7:
                        tv_yue.setText("24个月");
                        result = yhy * 0.01 * 24;
                        BigDecimal bg24 = new BigDecimal(result);
                        double f24 = bg24.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f24);
                        break;
                    case R.id.it8:
                        tv_yue.setText("27个月");
                        result = yhy * 0.01 * 27;
                        BigDecimal bg27 = new BigDecimal(result);
                        double f27 = bg27.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f27);
                        break;
                    case R.id.it9:
                        tv_yue.setText("30个月");
                        result = yhy * 0.01 * 30;
                        BigDecimal bg30 = new BigDecimal(result);
                        double f30 = bg30.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f30);
                        break;
                    case R.id.it10:
                        tv_yue.setText("33个月");
                        result = yhy * 0.01 * 33;
                        BigDecimal bg33 = new BigDecimal(result);
                        double f33 = bg33.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f33);
                        break;
                    case R.id.it11:
                        tv_yue.setText("36个月");
                        result = yhy * 0.01 * 36;
                        BigDecimal bg36 = new BigDecimal(result);
                        double f36 = bg36.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                        tv_yhy.setText("" + f36);
                        break;
                    default:
                        break;
                }
                return false;
            }
        });
        popupMenu.show();
    }

menu文件下的main布局如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <item
        android:id="@+id/it0"
        android:title="3个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it1"
        android:title="6个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it2"
        android:title="9个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it3"
        android:title="12个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it4"
        android:title="15个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it5"
        android:title="18个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it6"
        android:title="21个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it7"
        android:title="24个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it8"
        android:title="27个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it9"
        android:title="30个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it10"
        android:title="33个月"
        app:showAsAction="never" />
    <item
        android:id="@+id/it11"
        android:title="36个月"
        app:showAsAction="never" />
</menu>

点击之后弹出menu窗口:






  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

举儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值