今天遇到个需要将一个double类型的数据保留小数点后两位的问题。在网上搜寻的集中解决方案,copy来一下,备用

首先result_value是处理前的double

get_double是用来保存我处理后的double

//方案一:
get_double = (double)(Math.round(result_value*100)/100.0)
//方案二:
DecimalFormat df = new DecimalFormat("#.##");
get_double = Double.ParseDouble(df.format(result_value));
//方案三:
get_double = Double.ParseDouble(String.format("%.2f",result_value));
//方案四:
BigDecimal bd = new BigDecimalresult_value();
BigDecimal bd2 = bd.setScale(2,BigDecimal .ROUND_HALF_UP);
get_double = Double.ParseDouble(bd2.ToString());

PS:我是用第二种方案解决了问题。

public static Double round(Double value, int scale) {
double result = 0.0;
if (null != value) {
result = new BigDecimal(String.valueOf(value)).setScale(scale,RoundingMode.HALF_UP).doubleValue();
}
return result;
}

这种方法可以设保留的小数点后的位数。

ava Double: 四舍五入并设置小数点位数

public static void main(String[] args) { // 1. 先乘后四舍五入, 再除; double d = 62.31060027198647; double d2 ...

java中double变量保留小数问题

做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点 ...

Java中double类型的数据精确到小数点后两位

Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); d ...

Java中double变量精确到小数点后几(2)位

import java.math.BigDecimal; import java.text.NumberFormat; public class Java中double类型的数据精确到小数点后两位 { ...

关于java中Double类型的运算精度问题()

Java Java double:浮点数:精确计算  public class Test{    public static void main(String args[]){        Syst ...

java中进行四舍五入

在oracle中有一个很好的函数进行四舍五入,round(), select round(111112.23248987,6) from dual; 但是java的Number本身不提供四舍五入的方法 ...

Java中Double类型计算问题

public class Test{    public static void main(String args[]){        System.out.println(0.05+0.01);  ...

double 四舍五入保留一定的位数

/** * double 类型的 四舍五入 保留一定的位数 * @param value * @param decimal 保留的位数 * @return * @throws Exception */ ...