案例 精确小数点后多少位的四种方法
代码:
package com.jc.test; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; /** * 精确小数点后多少位的四种方法 * @author wang-xiaoming * */ public class TestPrecision { public static void main(String[] args) { double pi = Math.PI; // 方法一:调用decimalFormat,格式:.00 System.out.println("decimalFormat.format(): " + new DecimalFormat(".00").format(pi)); // 方法二:调用String类的format函数,格式:%.2f System.out.println("string.format(): " + String.format("%.2f", pi)); // 方法三:调用bigDecimal,格式:2 System.out.println("bigDecimal.doubleValue(): " + BigDecimal.valueOf(pi).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); // 方法四:调用numberFormat,格式:2 NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); System.out.println("numberFormat.format(): " + nf.format(pi)); // 逗号分隔数字,适用于价格金额 nf.setGroupingUsed(true); System.out.println("numberFormat.format() 逗号分隔: " + nf.format(1000000.123)); } }
结果:
decimalFormat.format(): 3.14 string.format(): 3.14 bigDecimal.doubleValue(): 3.14 numberFormat.format(): 3.1416 numberFormat.format() 逗号分隔: 1,000,000.0001
扩展:使用String.format方法对数字格式化补零
/** * 根据数字获取三位补零结果 * @param num * @return */ public static String getThreeFillZero(int num){ return String.format("%3d", num).replaceAll(" ", "0"); }
雨淋淋过的季节
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!