侧边栏壁纸
博主头像
Stars-One的杂货小窝博主等级

所有的创作都是有价值的

  • 累计撰写 277 篇文章
  • 累计创建 46 个标签
  • 累计收到 27 条评论

目 录CONTENT

文章目录

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

Stars-one
2022-07-04 / 0 评论 / 0 点赞 / 435 阅读 / 2454 字

下面以保留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为保留两位小数

0

评论区