parent
							
								
									7b1f7a2059
								
							
						
					
					
						commit
						7b3d5711cd
					
				| @ -0,0 +1,116 @@ | ||||
| package com.android.base.utils.common; | ||||
| 
 | ||||
| import java.math.BigDecimal; | ||||
| 
 | ||||
| /** | ||||
|  * 使用 BigDecimal 计算 | ||||
|  * | ||||
|  * @author Ztiany | ||||
|  * Email: 1169654504@qq.com | ||||
|  * Date : 2016-12-06 14:58 | ||||
|  */ | ||||
| @SuppressWarnings("unused") | ||||
| public class BigDecimalCalculator { | ||||
| 
 | ||||
|     public static final BigDecimal ZERO = new BigDecimal("0"); | ||||
|     private static final int SCALE = 2; | ||||
| 
 | ||||
|     private BigDecimalCalculator() { | ||||
|         throw new UnsupportedOperationException(); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal add(BigDecimal value1, float value2) { | ||||
|         return value1.add(new BigDecimal(Float.toString(value2))); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal add(float value1, float value2) { | ||||
|         return new BigDecimal(Float.toString(value1)).add(new BigDecimal(Float.toString(value2))); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal multiply(BigDecimal value1, float value2) { | ||||
|         return value1.multiply(new BigDecimal(Float.toString(value2))); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal multiply(float value1, float value2) { | ||||
|         return new BigDecimal(Float.toString(value1)).multiply(new BigDecimal(Float.toString(value2))); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal subtract(BigDecimal value1, float value2) { | ||||
|         return value1.subtract(new BigDecimal(Float.toString(value2))); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal subtract(float value1, float value2) { | ||||
|         return new BigDecimal(Float.toString(value1)).subtract(new BigDecimal(Float.toString(value2))); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal divide(BigDecimal dividend, BigDecimal divisor) { | ||||
|         return dividend.divide(divisor, SCALE, BigDecimal.ROUND_HALF_UP); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal divide(float dividend, BigDecimal divisor) { | ||||
|         return new BigDecimal(Float.toString(dividend)).divide(divisor, SCALE, BigDecimal.ROUND_HALF_UP); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal divide(BigDecimal dividend, float divisor) { | ||||
|         return dividend.divide(new BigDecimal(Float.toString(divisor)), SCALE, BigDecimal.ROUND_HALF_UP); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal divide(float dividend, float divisor) { | ||||
|         return new BigDecimal(Float.toString(dividend)).divide(new BigDecimal(Float.toString(divisor)), SCALE, BigDecimal.ROUND_HALF_UP); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 提供精确的小数位四舍五入处理。 | ||||
|      * | ||||
|      * @param v 需要四舍五入的数字 | ||||
|      * @return 四舍五入后的结果 | ||||
|      */ | ||||
|     public static float round(float v) { | ||||
|         BigDecimal b = new BigDecimal(Float.toString(v)); | ||||
|         BigDecimal one = new BigDecimal("1"); | ||||
|         return b.divide(one, SCALE, BigDecimal.ROUND_HALF_UP).floatValue(); | ||||
|     } | ||||
| 
 | ||||
|     public static BigDecimal toBigDecimal(float price) { | ||||
|         return new BigDecimal(String.valueOf(price)); | ||||
|     } | ||||
| 
 | ||||
|     public static boolean isZero(float value) { | ||||
|         return Float.compare(value, 0F) == 0; | ||||
|     } | ||||
| 
 | ||||
|     public static boolean equals(float a, float b) { | ||||
|         return Float.compare(a, b) == 0; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @return a > b return true or false | ||||
|      */ | ||||
|     public static boolean isGreaterThan(float a, float b) { | ||||
|         return Float.compare(a, b) == 1; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @return a >= b true or false | ||||
|      */ | ||||
|     public static boolean isEqualsOrGreaterThan(float a, float b) { | ||||
|         int compare = Float.compare(a, b); | ||||
|         return compare != -1; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @return true a < b or false | ||||
|      */ | ||||
|     public static boolean isLessThan(float a, float b) { | ||||
|         return Float.compare(a, b) == -1; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @return a <= b true or false | ||||
|      */ | ||||
|     public static boolean isEqualsOrLessThan(float a, float b) { | ||||
|         int compare = Float.compare(a, b); | ||||
|         return compare != 1; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue