JAVA中对浮点数精度控制的几种方法

方法一:使用BigDecimal类中的setScale方法

BigDecimal a = new BigDecimal("3.1415926");
a = a.setScale(3, BigDecimal.ROUND_HALF_UP); // 返回一个新的大浮点数对象,保留小数点后3位,且指定为四舍五入
System.out.println(a); // 输出3.142

方法二:使用String.format方法

double a = 3.1415926;
String str = String.format("%.3f", a); // 返回的是一个字符串,保留小数点后3位,默认四舍五入
System.out.println(str); // 输出3.142

方法三:使用NumberFormat类中的setMaximumFractionDigits方法

BigDecimal a = new BigDecimal("3.1415926");
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(3); // 设置保留小数点后最多几位
String str = nf.format(a.doubleValue()); // 对大浮点数进行格式化,返回字符串
   System.out.println(str); // 输出3.142

方法四:使用DecimalFormat类中的setRoundingMode和format方法

BigDecimal a = new BigDecimal("3.1415926");
DecimalFormat df = new DecimalFormat("#0.000"); // 指定数字模式,小数点后保留三位
df.setRoundingMode(RoundingMode.FLOOR); // 指定省略模式,此处为向下省略
String str = df.format(a.doubleValue());  // 格式化,返回字符串
System.out.println(str); // 输出3.141

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值