Java中,对于不需要任何准确计算精度的数字可以直接使用float或double运算,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。
BigDecimal类的常用方法如下所示:
//构造方法,把double、int、String转换成BigDecimal public BigDecimal(double val); public BigDecimal(int val); public BigDecimal(String val); //BigDecimal类中的加、减、乘、除方法 public BigDecimal add(BigDecimal augend); public BigDecimal add(BigDecimal subtrahend); public BigDecimal add(BigDecimal multiplicand); public BigDecimal add(BigDecimal divisor);
下面贴出来Java中基本运算的代码示例:
package com.csyor.numberdemo; import java.math.BigDecimal; public class MyMath { // 进行加法运算 public static double add(double d1, double d2){ BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.add(b2).doubleValue(); } // 进行减法运算 public static double sub(double d1, double d2){ BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.subtract(b2).doubleValue(); } // 进行乘法运算 public static double mul(double d1, double d2){ BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.multiply(b2).doubleValue(); } // 进行除法运算 public static double div(double d1,double d2,int len) { BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue(); } // 进行四舍五入操作 public static double round(double d,int len) { BigDecimal b1 = new BigDecimal(d); BigDecimal b2 = new BigDecimal(1); // 任何一个数字除以1都是原数字 // ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作 return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue(); } //测试 public static void main(String[] args) { System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,3.333), 1)); System.out.println("乘法运算:" + MyMath.round(MyMath.mul(10.345,3.333), 3)); System.out.println("除法运算:" + MyMath.div(10.345, 3.333, 3)); System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3.333), 3)); } }
以上内容来自于网络,如有侵权联系即删除。
猜你喜欢
发表评论
电子邮件地址不会被公开。 必填项已用*标注