NumberFormat的使用

NumberFormat的使用getInstancegetNumberInstance的结果一致packagecom.text;importjava.text.NumberFormat;importjava.text.ParseException;importjava.text.ParsePosition;importjava.util.Locale;publicclassNumberF…

  • NumberFormat简介
    NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。
    可用于格式化和解析任何语言环境的数值。使代码能够完全独立于小数点、千位分隔符甚至所用特定小数位数的语言环境约定,并与数值格式是否为偶小数无关。
    使用 getInstance 或 getNumberInstance 来获取常规数值格式。
    使用 getIntegerInstance 来获取整数数值格式。
    使用 getCurrencyInstance 来获取货币数值格式。
    使用 getPercentInstance 来获取显示百分比的格式。使用此格式,小数 0.53 将显示为 53%。
    使用 setMinimumFractionDigits 之类的方法还可以控制数值的显示。
    如果想对格式化和解析进行更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法获取的 NumberFormat 强制转换为 DecimalFormat。这适用于大多数语言环境;只是要记住将其放入一个 try 代码块中,以防遇到特殊情况。
  • getInstance
    getNumberInstance的结果一致
package com.text;

import java.text.NumberFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.util.Locale;

public class NumberFormatTest { 
   

    public static void main(String[] args) throws ParseException { 
   
        // 千分位格式化
        NumberFormat numberFormat = NumberFormat.getInstance(Locale.getDefault());
        
        System.out.println(numberFormat.format(Integer.valueOf(12345)));
        System.out.println(numberFormat.format(Long.valueOf(-34567L)));
        System.out.println(numberFormat.format(Float.valueOf(12345.5234f)));
        System.out.println(numberFormat.format(Double.valueOf(-12345.4235)));
    }
}

输出结果:

12,345
-34,567
12,345.523
-12,345.424
  • getIntegerInstance
    只保留整数部分
package common.number;

import java.math.RoundingMode;
import java.text.NumberFormat;

public class SaveInteger { 
   

    public static void main(String[] args) { 
   
        // 保留整型的实例
        NumberFormat integerInstance = NumberFormat.getIntegerInstance();

        // 设置保留的整数位数
        integerInstance.setMaximumIntegerDigits(2);
        // 设置实例以四舍五入的方式截取整数部分
        // RoundingMode是一个枚举类,内部有多种数据保留策略
        integerInstance.setRoundingMode(RoundingMode.HALF_UP);

        System.out.print(integerInstance.format(1));
        System.out.print("\t"+integerInstance.format(123));
        System.out.print("\t"+integerInstance.format(12));
        System.out.print("\t"+integerInstance.format(12.34));
        System.out.print("\t"+integerInstance.format(12.5));

        System.out.print("\t"+integerInstance.format(-12.5));
        System.out.print("\t"+integerInstance.format(-12.3));
    }

}

打印结果:

1
23
12
12
13
-13
-12
  • getCurrencyInstance
package com.text;

import java.text.NumberFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.util.Locale;

public class NumberFormatTest { 
   

    public static void main(String[] args) throws ParseException { 
   
        // 千分位格式化金钱
        NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.getDefault());
        System.out.println(numberFormat.format(Integer.valueOf(12345)));
        System.out.println(numberFormat.format(Long.valueOf(34567L)));
        System.out.println(numberFormat.format(Double.valueOf(12345.4567)));
    }
}


输出结果:

¥12,345.00
¥34,567.00
¥12,345.46
  • getPercentInstance
package common.number;

import java.text.NumberFormat;
import java.text.ParseException;

public class PercentNumber { 
   

    public static void main(String[] args) throws ParseException { 
   

        // 百分比格式化实例
        NumberFormat percentInstance = NumberFormat.getPercentInstance();

        // 保留小数点后几位
        percentInstance.setMaximumFractionDigits(2);

        System.out.println(percentInstance.format(1));
        System.out.println(percentInstance.format(1.2));
        System.out.println(percentInstance.format(.1));
        System.out.println(percentInstance.format(0.12));
        System.out.println(percentInstance.format(-0.12345));
        System.out.println(percentInstance.format(0.2155));
    }

}

输出结果:

100%
120%
10%
12%
-12.35%
21.55%

今天的文章NumberFormat的使用分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12568.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注