zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Java/Kotlin Double保留小数点后几位

2023-02-18 16:36:09 时间

下面以保留2位小数,且按照四舍五入规则的例子

方法

1.BigDecimal.setScale()

此方法得到的还是个double数值

double one = 5.864;
BigDecimal two = new BigDecimal(one);
double one = two.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

setScale()中,第一个参数为保留位数,第二个参数则是规则,有以下几个选项:

  • BigDecimal.ROUND_HALF_UP 四舍五入,
  • BigDecimal.ROUND_HALF_DOWN 五舍六入,
  • BigDecimal.ROUND_UP 进位处理(就是直接加1)
  • BigDecimal.ROUND_DOWN 直接去掉尾数

2.Sting.format()

此方法得到的是个string类型

double one = 5.864;
String  str = String.format("%.2f",one);

3.NumberFormat.format()

此方法得到的是个string类型

import java.text.NumberFormat;

double d = 5.864;
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数
nf.setMaximumFractionDigits(2); 
// 如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);
System.out.println(nf.format(d));

RoundingMode.HALF_DOWN 五舍六入,负数先取绝对值再五舍六入再负数,
RoundingMode.HALF_UP 四舍五入,负数先取绝对值再五舍六入再负数。

4.DecimalFormat.format()

此方法得到的是个string类型

import java.text.DecimalFormat;

double f = 5.864;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));

#.00为保留两位小数