java使用BigDecimal格式化小数

Python017

java使用BigDecimal格式化小数,第1张

方法一:

double myNum2 = 111231.5585478

java.math.BigDecimal b = new java.math.BigDecimal(myNum2)

double myNum3 = b.setScale(5, java.math.BigDecimal.ROUND_HALF_UP).doubleValue()

System.out.println(myNum2)

System.out.println(myNum3)

方法二:

double d = 3.1465926

String result = String.format("%.5f", d)

System.out.println(result)

用String类的格式化比较方便点

Double s = 23.43432

String s1 = String.format("%.2f", s)

最后返回的是一个String的s1,若还是想用double类型,可以用Double.valueOf(s1)再转换一次即可

java中保留1位小数, 通常可以使用字符串格式化的方式, 或者利用BigDecimal 来实现

参考代码

import java.math.BigDecimal

public class Test {

public static void main(String[] args) {

double d1 = 3.02

System.out.println(d1)

//利用字符串格式化的方式实现 四舍五入,保留1位小数

String str1 = String.format("%.1f",d1)// 1代表小数点后面的位数, 不足补0 . f代表,后面的数据d1是浮点类型

System.out.println(str1)

//利用BigDecimal来实现四舍五入.保留一位小数

double f1 = new BigDecimal(d1).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()

//1 代表保留1位小数

//BigDecimal.ROUND_HALF_UP 代表使用四舍五入的方式

System.out.println(f1)

}

}