java 两个Double类型的数值之间的加减操作
2017-09-21 09:11
393 查看
DoubleUtils import java.math.BigDecimal; public class DoubleUtil { /** * double 相加 * @param d1 * @param d2 * @return */ public static double sum(double d1,double d2){ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toString(d2)); return bd1.add(bd2).doubleValue(); } /** * double 相减 * @param d1 * @param d2 * @return */ public static double sub(double d1,double d2){ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toString(d2)); return bd1.subtract(bd2).doubleValue(); } /** * double 乘法 * @param d1 * @param d2 * @return */ public static double mul(double d1,double d2){ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toString(d2)); return bd1.multiply(bd2).doubleValue(); } /** * double 除法 * @param d1 * @param d2 * @param scale 四舍五入 小数点位数 * @return */ public static double div(double d1,double d2,int scale){ // 当然在此之前,你要判断分母是否为0, // 为0你可以根据实际需求做相应的处理 BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toString(d2)); return bd1.divide(bd2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * double 转 string 去掉后面锝0 * @param i * @return */ public static String getString(double i){ String s = String.valueOf(i); if(s.indexOf(".") > 0){ //正则表达 s = s.replaceAll("0+?$", "");//去掉后面无用的零 s = s.replaceAll("[.]$", "");//如小数点后面全是零则去掉小数点 } return s; } public static void main(String[] args) { String i=numberToBits("10000000.01"); System.out.println(i); } /** * 数字转换为千位符 * @param number * @return */ public static String numberToBits(String number){ String begin=""; String end=""; String[] num=number.split("\\."); if(num.length>1){ begin=num[0]; end=num[1]; }else{ begin=number; } return begin.replaceAll("(?<=\\d)(?=(?:\\d{3})+$)", ",")+"."+end; } }
相关文章推荐
- java中,数值计算时的类型转换 ( 两个int类型相加,赋值给double )
- java中double类型数据加减操作精度丢失问题及解决方法
- java中long和double类型操作的非原子性探究
- java float double类型做小数点加减运算不准确
- java中比较两个double类型的数据大小
- java float double类型做小数点加减运算不准确
- 【字符串操作之】返回两个数值之间的字符串。→→substring方法
- Java中数值类型之间的转换
- java数值类型与二进制byte数组之间的转换
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- java中关于String类型和double,int类型之间的转换
- Java中double和byte数值之间的转换
- java double类型数据操作工具类
- java中两个double类型数据的大小
- java 管道流的读写操作 用于两个线程之间的通信
- java中如何使Double类型的数值保留两位小数问题
- java之double类型数值的比较
- java中double类型显示两个小数,比如12.00
- Java中数值较大的double类型转换为字符串时会用科学计数法显示的解决办法
- java中对Date类型的数据进行年月日的加减操作