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.BigDecimalpublic 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)
}
}