java中将数字颠倒的工具类,Double数字转换工具类

package com.dtb.member.util;

import java.math.BigDecimal;

import java.math.RoundingMode;

import java.text.DecimalFormat;

/**

* @Author:ChengJian

* @Description:

* @Date: Created in 下午4:48 2019/1/17

*/

public class NumberUtils {

/**

*

* @Description:7*0.01*100/100 保留四位小数,截取4位

* @Date:2019/1/17 下午4:49

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double getDouble_toNum_no4no5(double number,int num){

// setScale(1)表示保留一位小数,默认用四舍五入方式

// setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3

// num 代表保留几位小数

return new BigDecimal(number).setScale(num, BigDecimal.ROUND_DOWN).doubleValue();

}

/**

*

* @Description:setScale(1,BigDecimal.ROUND_UP)进位处理,不管后为是1还是6,都进1

* @Date:2019/1/17 下午4:59

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double getDouble_toNum_isincr(double number,int num){

return new BigDecimal(number).setScale(num, BigDecimal.ROUND_UP).doubleValue();

}

/**

*

* @Description:正常四舍五入

* @Date:2019/1/28 下午5:37

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double getDouble_toNum_is45(double number,int num){

return new BigDecimal(number).setScale(num, BigDecimal.ROUND_HALF_UP).doubleValue();

}

/**

*

* @Description:获取两个整数的double值 isNpoint:保留很多小数点

* @Date:2019/1/24 上午9:54

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double getDouble_division_isNpoint(int num1,int num2){

double result = num1*0.01*100/num2;

return result;

}

/**

*

* @Description:两外一种方法,和上面方式不同,截取两位小数

* @Date:2019/1/24 上午10:03

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double getDouble_to2_no4no5(double num){

DecimalFormat df = new DecimalFormat("#0.##");

df.setRoundingMode(RoundingMode.FLOOR);

return Double.parseDouble(df.format(num));

}

/**

*

* @Description://四舍五入转换成整数

* @Date:2019/1/24 上午10:18

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static int getInteger(double num){

DecimalFormat df2 = new DecimalFormat("######0");

return Integer.parseInt(df2.format(num));

}

/**

*

* @Description:提供精确的加法运算

* @Date:2019/1/28 上午10:38

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double add_2_double(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.add(b2).doubleValue();

}

/**

*

* @Description:提供精确的减法运算

* @Date:2019/1/28 上午10:39

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double substract_2_double(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

/**

*

* @Description:提供精确的乘法运算

* @Date:2019/1/28 上午10:40

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double multiply(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

/**

*

* @Description:提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入.

* @Date:2019/1/28 上午10:40

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double divide(double v1, double v2) {

return divide(v1, v2, 10);

}

/**

*

* @Description:提供(相对)精确的除法运算.当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入

* @Date:2019/1/28 上午10:41

* @Author:ChengJian

* @UpdateRemark:

* @Version:1.0

*

*/

public static double divide(double v1, double v2, int scale) {

if (scale < 0) {

throw new IllegalArgumentException("The scale must be a positive integer or zero");

}

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();

}

public static void main(String[] args) {

System.out.println(getDouble_toNum_is45(2.1323,0));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值