java保留2位小数的4种方式

本文详细介绍了使用Java进行数字格式化的四种方法:通过BigDecimal设置精度、利用DecimalFormat进行简便转换、采用String.format打印以及借助NumberFormat实现。每种方法都提供了具体的代码示例,帮助读者理解和掌握。
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

public class format {
   double f = 111231.5585;
   public void m1() {
       BigDecimal bg = new BigDecimal(f);
       double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
       System.out.println(f1);
   }
   /**
    * DecimalFormat转换最简便
    */
   public void m2() {
       DecimalFormat df = new DecimalFormat("#.00");
       System.out.println(df.format(f));
   }
   /**
    * String.format打印最简便
    */
   public void m3() {
       System.out.println(String.format("%.2f", f));
   }
   public void m4() {
       NumberFormat nf = NumberFormat.getNumberInstance();
       nf.setMaximumFractionDigits(2);
       System.out.println(nf.format(f));
   }
   public static void main(String[] args) {
       format f = new format();
       f.m1();
       f.m2();
       f.m3();
       f.m4();
   }
}
Java 中,如果需要将数值格式化为保留小数,可以使用 `DecimalFormat` 类来实现。`DecimalFormat` 提供了灵活的格式化选项,可以通过指定格式模式来控制小数数。以下是一个示例代码,展示如何将数值格式化为保留小数: ```java import java.text.DecimalFormat; public class Main { public static void main(String[] args) { double value = 123.456789; DecimalFormat df = new DecimalFormat("0.0000"); String formattedValue = df.format(value); System.out.println(formattedValue); } } ``` 在上面的代码中,`"0.0000"` 是格式化模式,表示始终保留小数,并且如果小数不足四时会用 `0` 填充。如果输入的数值是 `123.456789`,输出将是 `123.4568`,因为默认情况下 `DecimalFormat` 会进行四舍五入[^2]。 如果你希望不进行四舍五入操作,而是直接截断到四小数,可以通过自定义方法来实现。例如,可以先将数值乘以 `10000`,取整后再除以 `10000`,从而实现截断的效果: ```java public class Main { public static void main(String[] args) { double value = 123.456789; double truncatedValue = Math.floor(value * 10000) / 10000; DecimalFormat df = new DecimalFormat("0.0000"); String formattedValue = df.format(truncatedValue); System.out.println(formattedValue); } } ``` 在这个例子中,`Math.floor(value * 10000) / 10000` 实现了截断到四小数的操作。最终输出将是 `123.4567`,而不是四舍五入后的 `123.4568`。 通过这些方法,可以根据具体需求选择是否进行四舍五入或者直接截断来保留小数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值