Double类型转百分比

今天遇到了一个数据转换的问题,网上找了很多,大概的方案就下面两种,总结一下做个备忘。

代码如下:

package com.llb.test;

import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
 * Double类型转百分比
 *
 * @author Jack Lee
 * @since 2021-06-02
 **/
public class DoubleToPercent {
    public static void main(String[] args) {
        double tmpValue = 0.21;
        double tmpValue2 = 1.21;
        double tmpValue3 = 1.21222;
        DecimalFormat df = new DecimalFormat("0.00%");

        String value = df.format(tmpValue);
        System.out.println("DecimalFormat转换0.21后的结果:" + value);

        String value2 = df.format(tmpValue2);
        System.out.println("DecimalFormat转换1.21后的结果:" + value2);

        String value3 = df.format(tmpValue3);
        System.out.println("DecimalFormat转换1.21222后的结果:" + value3);

        NumberFormat num = NumberFormat.getPercentInstance();
        num.setMaximumIntegerDigits(3);
        num.setMaximumFractionDigits(2);
        System.out.println("NumberFormat转换0.21后的结果:" + num.format(tmpValue));
        System.out.println("NumberFormat转换1.21后的结果:" + num.format(tmpValue2));
        System.out.println("NumberFormat转换1.21222后的结果:" + num.format(tmpValue3));
    }
}

控制台输出如下:
Double类型转百分比_第1张图片

看上面的结果,不难发现:
第一种方案输出的结果比较平整,格式好看。
第二种方案输出格式中,如果小数位为0,则不会输出,格式比较乱。

你可能感兴趣的:(Java,#,测试,java)