java取后两位_java保留小数后两位的四种写法

这个Java类提供了多种方法来处理Double类型的数值,精确地保留一位或两位小数,支持四舍五入和不进行四舍五入的策略。这些方法使用了BigDecimal和DecimalFormat类,确保了数值计算的精度。
摘要由CSDN通过智能技术生成

import java.math.BigDecimal;

import java.math.RoundingMode;

import java.text.DecimalFormat;

/**

* Double类型数据处理类

* @author wjx

* @date 2017/10/17.

*/

public class NumberUtil {

public static Double saveOneBit(Double d){

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

format.setRoundingMode(RoundingMode.FLOOR);

String result = format.format(d);

return Double.parseDouble(result);

}

/**

* 保留一位小数,不进行四舍五入

* @param d

* @return

*/

public static Double saveOneBitOne(Double d){

BigDecimal bd = new BigDecimal(d);

Double tem = bd.setScale(1,BigDecimal.ROUND_FLOOR).doubleValue();

return tem;

}

/**

* 保留一位小数,进行四舍五入

* @param d

* @return

*/

public static Double saveOneBitOneRound(Double d){

BigDecimal bd = new BigDecimal(d);

Double tem = bd.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();

return tem;

}

/**

* 保留两位小数,不进行四舍五入

* @param d

* @return

*/

public static Double saveOneBitTwo(Double d){

BigDecimal bd = new BigDecimal(d);

Double tem = bd.setScale(2,BigDecimal.ROUND_FLOOR).doubleValue();

return tem;

}

/**

* 保留两位小数,进行四舍五入

* @param d

* @return

*/

public static Double saveOneBitTwoRound(Double d){

BigDecimal bd = new BigDecimal(d);

Double tem = bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

return tem;

}

/**

* 保留一位小数,进行四舍五入(该方法经测试 较为精准)

* @param d

* @return

*/

public static Double saveOneBitOneRound(Double d){

String str = String.format("%.1f",d);

double c = Double.parseDouble(str);

return c;

}

public static void main(String [] args){

double a = saveOneBitOneRound(1200.48);

System.out.println(a);

double b = Double.parseDouble(String.valueOf(a));

System.out.println(b);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值