在 Java 中,你可以使用 DecimalFormat 类或者 NumberFormat 类来生成百分比和千分比。下面为你详细介绍这两种实现方式。

方法一:使用 DecimalFormat

DecimalFormatjava.text 包下的一个类,它可以用来格式化数字,生成百分比和千分比。

import java.text.DecimalFormat;

public class PercentageAndPermillageGenerator {
    public static String generatePercentage(double number) {
        // 创建 DecimalFormat 对象,指定百分比格式
        DecimalFormat percentageFormat = new DecimalFormat("0.00%");
        // 格式化数字为百分比字符串
        return percentageFormat.format(number);
    }

    public static String generatePermillage(double number) {
        // 创建 DecimalFormat 对象,指定千分比格式
        DecimalFormat permillageFormat = new DecimalFormat("0.00‰");
        // 格式化数字为千分比字符串
        return permillageFormat.format(number);
    }

    public static void main(String[] args) {
        double num = 0.1234;
        // 生成百分比
        String percentage = generatePercentage(num);
        // 生成千分比
        String permillage = generatePermillage(num);

        System.out.println("百分比: " + percentage);
        System.out.println("千分比: " + permillage);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
代码解释:
  1. generatePercentage 方法:创建一个 DecimalFormat 对象,指定格式为 "0.00%",表示保留两位小数的百分比格式。然后使用 format 方法将传入的数字格式化为百分比字符串。
  2. generatePermillage 方法:创建一个 DecimalFormat 对象,指定格式为 "0.00‰",表示保留两位小数的千分比格式。然后使用 format 方法将传入的数字格式化为千分比字符串。
  3. main 方法:定义一个测试数字 0.1234,调用 generatePercentagegeneratePermillage 方法分别生成百分比和千分比字符串,并将结果输出。
方法二:使用 NumberFormat

NumberFormatjava.text 包下的一个抽象类,它提供了格式化和解析数字的方法。可以使用 getPercentInstancegetPerMillInstance 方法来获取百分比和千分比格式化器。

import java.text.NumberFormat;

public class PercentageAndPermillageGenerator2 {
    public static String generatePercentage(double number) {
        // 获取百分比格式化器
        NumberFormat percentageFormat = NumberFormat.getPercentInstance();
        // 设置小数位数为两位
        percentageFormat.setMinimumFractionDigits(2);
        percentageFormat.setMaximumFractionDigits(2);
        // 格式化数字为百分比字符串
        return percentageFormat.format(number);
    }

    public static String generatePermillage(double number) {
        // 获取千分比格式化器
        NumberFormat permillageFormat = NumberFormat.getPerMillInstance();
        // 设置小数位数为两位
        permillageFormat.setMinimumFractionDigits(2);
        permillageFormat.setMaximumFractionDigits(2);
        // 格式化数字为千分比字符串
        return permillageFormat.format(number);
    }

    public static void main(String[] args) {
        double num = 0.1234;
        // 生成百分比
        String percentage = generatePercentage(num);
        // 生成千分比
        String permillage = generatePermillage(num);

        System.out.println("百分比: " + percentage);
        System.out.println("千分比: " + permillage);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
代码解释:
  1. generatePercentage 方法:使用 NumberFormat.getPercentInstance() 方法获取百分比格式化器,然后使用 setMinimumFractionDigitssetMaximumFractionDigits 方法设置小数位数为两位,最后使用 format 方法将传入的数字格式化为百分比字符串。
  2. generatePermillage 方法:使用 NumberFormat.getPerMillInstance() 方法获取千分比格式化器,然后使用 setMinimumFractionDigitssetMaximumFractionDigits 方法设置小数位数为两位,最后使用 format 方法将传入的数字格式化为千分比字符串。
  3. main 方法:定义一个测试数字 0.1234,调用 generatePercentagegeneratePermillage 方法分别生成百分比和千分比字符串,并将结果输出。

这两种方法都可以实现生成百分比和千分比的功能,你可以根据自己的需求选择合适的方法。