double格式化

public class Test { public static void main(String[] args) {

// 方法一:输出时对double进行格式化保留两位小数 四舍五入

DecimalFormat df = new DecimalFormat("0.00");

double d1 = 3.23556; System.out.println(df.format(d1));

// 方法二:使用BigDecimal 对double进行格式化,并返回一个值

double d2 = 3.23456;

BigDecimal b = new BigDecimal(d2);

/*setScale 第一个参数为保留位数 第二个参数为舍入机制

BigDecimal.ROUND_DOWN 表示不进位 BigDecimal.ROUND_UP表示进位*/

d2 = b.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(d2); }// main}// Test

在Java中,`Double` 类用于表示双精度浮点数。格式化 `Double` 类型的数据通常是为了控制输出的格式,例如小数点后的位数、是否显示千位分隔符等。以下是几种常见的方法来格式化 `Double` 类型: ### 1. 使用 `String.format()` `String.format()` 方法允许你通过格式化字符串来指定输出格式。 ```java double value = 12345.6789; String formattedValue = String.format("%.2f", value); // 保留两位小数 System.out.println(formattedValue); // 输出: 12345.68 ``` ### 2. 使用 `DecimalFormat` `DecimalFormat` 类提供了更强大的格式化功能,可以自定义数字的显示方式。 ```java import java.text.DecimalFormat; double value = 12345.6789; DecimalFormat df = new DecimalFormat("#,###.00"); // 千位分隔符和保留两位小数 String formattedValue = df.format(value); System.out.println(formattedValue); // 输出: 12,345.68 ``` ### 3. 使用 `NumberFormat` `NumberFormat` 类也可以用于格式化数字,特别是当你需要根据本地化设置来格式化数字时。 ```java import java.text.NumberFormat; import java.util.Locale; double value = 12345.6789; NumberFormat nf = NumberFormat.getNumberInstance(Locale.US); // 使用美国本地化设置 nf.setMaximumFractionDigits(2); // 保留两位小数 String formattedValue = nf.format(value); System.out.println(formattedValue); // 输出: 12,345.68 ``` ### 4. 使用 `BigDecimal` 如果你需要高精度的数值计算和格式化,可以使用 `BigDecimal` 类。 ```java import java.math.BigDecimal; import java.math.RoundingMode; double value = 12345.6789; BigDecimal bd = new BigDecimal(value).setScale(2, RoundingMode.HALF_UP); // 保留两位小数并四舍五入 System.out.println(bd); // 输出: 12345.68 ``` ### 示例代码总结 ```java public class DoubleFormattingExample { public static void main(String[] args) { double value = 12345.6789; // 使用 String.format() String formattedValue1 = String.format("%.2f", value); System.out.println("String.format(): " + formattedValue1); // 使用 DecimalFormat DecimalFormat df = new DecimalFormat("#,###.00"); String formattedValue2 = df.format(value); System.out.println("DecimalFormat: " + formattedValue2); // 使用 NumberFormat NumberFormat nf = NumberFormat.getNumberInstance(Locale.US); nf.setMaximumFractionDigits(2); String formattedValue3 = nf.format(value); System.out.println("NumberFormat: " + formattedValue3); // 使用 BigDecimal BigDecimal bd = new BigDecimal(value).setScale(2, RoundingMode.HALF_UP); System.out.println("BigDecimal: " + bd); } } ``` 以上是几种常见的 `Double` 格式化方法,你可以根据具体需求选择合适的方法进行格式化
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值