double类型数相除保留两位⼩数参考⽂章:
⼀、需要使⽤BigDecimal来实现
st.math;
2
3import java.math.BigDecimal;
4
5public class TestJiSuan {
6
7public static void main(String[] args) {
8double a = 1;
9double b = 3;
10double c = a / b;
11 System.out.println(c); //0.3333333333333333
12 System.out.println(divide(a, b, 2)); //0.33
13
14int total = 21;
15int count = 9;
16double 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*/
29public static double divide(double a, double b, int scale){
30 BigDecimal bd1 = new String(a));
31 BigDecimal bd2 = new String(b));
32return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
33 }
34 }
⼆、DecimalFormat
参考⽂章:
/**
* 计算结果百分⽐,保留1位⼩数
*
* @param a 除数
bigdecimal除法保留小数* @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);
}
---
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论