1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| package com.hxzkoa.util;
|
| import java.math.BigDecimal;
|
| public class CalculatorUtil {
| /**
| * C:向上取整;I:向下取整;R:四舍五入
| * @param m
| * @param k,此处运算要使用BigDecimal,否则float或double会出现精度丢失,
| * @param qzms
| * @return
| */
| public static Integer multiRound(String m,String newBl,String bl,String qzms){
| return multiRound(new BigDecimal(m),new BigDecimal(newBl),new BigDecimal(bl),qzms);
| }
| public static Integer multiRound(BigDecimal m,BigDecimal newBl,BigDecimal bl,String qzms){
| Integer total=0;
| switch (qzms){
| case "C":
| total=(int) Math.ceil(m.multiply(newBl).divide(bl).doubleValue());
| break;
| case "I":
| total=(int) Math.floor(m.multiply(newBl).divide(bl).doubleValue());
| break;
| case "R":
| total=(int) Math.round(m.multiply(newBl).divide(bl).doubleValue());
| break;
| default:
| total=0;
| }
| return total;
| }
| public static void main(String[] args) {
| System.out.println(CalculatorUtil.multiRound("30","105","100","R"));
| }
| }
|
|