BigDecimal工具类处理精度计算

 1 /**
 2  * Created by My_coder on 2017-07-27.
 3  * 加减乘除计算工具类
 4  */
 5 public class BigDecimalUtil {
 6     private BigDecimalUtil() {
 7     }
 8
 9     /**
10      * 加
11      */
12     public static BigDecimal add(Double v1, Double v2){
13         BigDecimal b1 = new BigDecimal(v1.toString());
14         BigDecimal b2 = new BigDecimal(v2.toString());
15         return b1.add(b2);
16     }
17     /**
18      * 减
19      */
20     public static BigDecimal sub(Double v1, Double v2){
21         BigDecimal b1 = new BigDecimal(v1.toString());
22         BigDecimal b2 = new BigDecimal(v2.toString());
23         return b1.subtract(b2);
24     }
25     /**
26      * 乘
27      */
28     public static BigDecimal mul(Double v1, Double v2){
29         BigDecimal b1 = new BigDecimal(v1.toString());
30         BigDecimal b2 = new BigDecimal(v2.toString());
31         return b1.multiply(b2);
32     }
33     /**
34      * 除
35      */
36     public static BigDecimal div(Double v1, Double v2){
37         BigDecimal b1 = new BigDecimal(v1.toString());
38         BigDecimal b2 = new BigDecimal(v2.toString());
39         //四舍五入,保留两位小数
40         return b1.divide(b2,2,BigDecimal.ROUND_HALF_DOWN);
41     }
42 }
时间: 2024-08-13 16:37:09

BigDecimal工具类处理精度计算的相关文章

java BigDecimal工具类

package com.core.calculate; import java.math.BigDecimal; import java.text.DecimalFormat; /** * Created by tangxin on 2017/1/6 0006. * 如有问题,欢迎提出更正 */ public class BigNum { public static final String BIG_NUM_FMT_COMMA = "#,###,###,###,###,###,##0.00&qu

BigDecimal工具类

public class BigDecimalUtil { private static int DEF_DIV_SCALE = 10; // 默认精确的小数位 /** * 提供精确的加法运算. * * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public static double add(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)

java精确计算工具类

import java.math.BigDecimal; import java.math.RoundingMode; import java.math.BigDecimal; import java.text.DecimalFormat; import org.springframework.stereotype.Component; /** * 工具类 - 运算 */ @Component public class ArithUtils { // 默认除法运算精度 private stati

java工具类-BigDecimal

1 package hello; 2 3 import java.math.BigDecimal; 4 5 /** 6 * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入. 7 */ 8 public class BigDecimalUtil { 9 10 // 默认除法运算精度 11 private static final int DEF_DIV_SCALE = 10; 12 13 // 这个类不能实例化 14 private B

BigDecimal精度计算

System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println(4.015*100); System.out.println(123.3/100); 上面的代码输出结果为 0.0600000000000000050.5800000000000001401.499999999999941.2329999999999999 原因在于我们的计算机是二进制的.浮点数没有办法是用二进制进行精确表示.我们的CPU

精确计算工具类,提供加减乘除的计算

package com.ljq.util; import java.math.BigDecimal; /** * 精确计算工具类,提供加减乘除的计算 * * @author jqlin */ public class CompuUtils { /**小数点后保留的位数*/ public final static int SCALE = 5; /** 0 */ public final static int ZERO = 0; /** * BigDecimal大小比较 * * @param a *

java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

一. 计算机的小数计算一定范围内精确,超过范围只能取近似值: 计算机存储的浮点数受存储bit位数影响,只能保证一定范围内精准,超过bit范围的只能取近似值. java中各类型的精度范围参见:http://blog.csdn.net/longshenlmj/article/details/47616481 编程时注意: doulbe类型的数,不能用等号判定是否相等(或者是一定范围内可以).因为两次同样的计算(除法)结果可能出现小数部分不同.甚至极端的时候,初始化两个小数时,都可能不相等(用数值和字

java工具类 六 根据经纬度计算距离

Java实现根据经纬度计算距离 在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(double lat1, double lat2, double lon1, double lon2) { double R = 6371; double distance = 0.0; double dLat = (lat2 - lat1) * Math.PI / 180; double dLon = (lo

计算月份天数工具类

package timer; /** * @author mercy * 计算月份工具类 *闰年29天平年28天 */ public class CalculateDay { public static void main(String[] args) { int year=1700; int month=2; int day= getDay(year,month); System.out.println(day); } public static int getDay(int year,int