double类型数相除保留两位小数


参考文章:

https://www.cnblogs.com/wangpei/p/4756055.html

https://blog.csdn.net/dongapple/article/details/76974624

 

一、需要使用BigDecimal来实现

 1 package com.cy.test.math;
 2 
 3 import java.math.BigDecimal;
 4 
 5 public class TestJiSuan {
 6 
 7     public static void main(String[] args) {
 8         double a = 1;
 9         double b = 3;
10         double c = a / b;
11         System.out.println(c);                          //0.3333333333333333
12         System.out.println(divide(a, b, 2));      //0.33
13 
14         int total = 21;
15         int count = 9;
16         double average = total / count;                 
17         System.out.println(average);                    //2.0
18         System.out.println((double)total);              //21.0
19         System.out.println(divide((double)total, (double)count, 2)); //2.33
20     }
21 
22     /**
23      * 两个double类型的数相除,保留两位小数
24      * @param a
25      * @param b
26      * @param scale
27      * @return
28      */
29     public static double divide(double a, double b, int scale){
30         BigDecimal bd1 = new BigDecimal(Double.toString(a));
31         BigDecimal bd2 = new BigDecimal(Double.toString(b));
32         return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
33     }
34 }

 

二、DecimalFormat

参考文章:https://www.jb51.net/article/135720.htm

/**
     * 计算结果百分比,保留1位小数
     *
     * @param a 除数
     * @param b 被除数
     * @return
     */
    private static String calculateResultOfPercent(Integer a, Integer b) {
        if (b == 0) {
            return "0%";
        }

        DecimalFormat df = new DecimalFormat("#.#%");
        return df.format((double) a / b);
    }

 

 

 

 

 

---


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM