专栏首页IT云清java中Integer运算保留2位小数

java中Integer运算保留2位小数

1.整数型运算时,结果会自动去除小数点后面的部分,如果需要适当的保留几位小数,需要转为fload类型,分子或者分母或者都转

如:

计算5除以6,保留2位小数

BigDecimal b = new BigDecimal((float)5/6);

四舍五入保留2位
Double result = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

如需保留3位

Double result = b.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue();

2.第二种方法

DecimalFormat df = new DecimalFormat("0.00"); 

Double result = df.format((float)5/6);

如需保留3位


DecimalFormat df = new DecimalFormat("0.000"); 

Double result = df.format((float)5/6);

3.第三种

String percent = new BigDecimal((double)num*100/sum).setScale(2,BigDecimal.ROUND_HALF_UP)+"%";

4.第四种:

计算百分比

    /**
     * a / b   计算百分比
     * @param a
     * @param b
     * @return eg:65.32%
     */
    public static String ADivideBPercent(BigDecimal a,BigDecimal b){
        String percent =
            b == null ? "-" :
                    b.compareTo(new BigDecimal(0)) == 0 ? "-":
                        a == null ? "0.00%" :
                                a.multiply(new BigDecimal(100)).divide(b,2,BigDecimal.ROUND_HALF_UP) + "%";
        return percent;
    }

3.BigDecimal的其他运算可见:http://blog.csdn.net/weixin_39800144/article/details/77752364

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • BigDecimal比较大小,BigDecimal保留几位小数,BigDecimal和0比较大小

    1.BigDecimal比较大小,compareTo方法,-1小于,0相等,1大于

    IT云清
  • Non-terminating decimal expansion; no exact representable decimal res

    IT云清
  • python中字符串拼接

    IT云清
  • Java开发中商业计算请务必使用BigDecimal来进行计算!

    今天群里一个初级开发者问为什么测试人员测出来他写的价格计算模块有计算偏差的问题,他检查了半天也没找出问题。这里小胖哥要提醒你,商业计算请务必使用`BigDeci...

    码农小胖哥
  • 【答疑解惑】Java中的高精度数字

    前几天网友在群里有问BigDecimal能直接赋值吗?就像使用基本数据类型那样,答案是不能。 Java中的基本数据类型有的时候是不能满足实际编程需要的,特别是在...

    程序员互动联盟
  • Java中的BigDecimal类你了解多少?

    可以看到在Java中进行浮点数运算的时候,会出现丢失精度的问题。那么我们如果在进行商品价格计算的时候,就会出现问题。很有可能造成我们手中有0.06元,却无法购买...

    用户1516716
  • Java-BigDecimal数据类型

    我们知道在Java中有float和double类型,它们的主要设计目标是为了科学计算和工程计算。然而,它们没有提供完全精确的结果【因为其有限的有效位数】,所以不...

    老九学堂-小师弟
  • 【刨根问底】BigDecimal 案例和部分源码分析

    在咱们开发过程中很容易遇到计算的问题,普通计算其实也还好使用int、long、double、float基本上能应付。但是如果涉及到数据类型转后在处理等就不是很好...

    用户4143945
  • [十七]基础类型BigDecimal简介

    BigDecimal表示的数为: unscaledValue × 10的-scale 次幂

    noteless
  • BigDecimal,BigInteger 学习以及简单示例

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

扫码关注云+社区

领取腾讯云代金券