您的位置:老铁SEO > 站长新闻 > 网站交易 >

numberformat,NumberFormat 格式化处理数字

文章来源:http://www.6cu.com

作者:博客外链

人气:14

2021-03-22 11:24:57

    一、官方API文档
    public abstract class NumberFormat
    extends Format
    NumberFormat是一个抽象类继承自Format
    NumberFormatis the abstract base class for all number formats. This class provides the interface for formatting and parsing numbers.NumberFormatalso provides methods for determining which locales have number formats, and what their names are.
    NumberFormat是一个抽象的数字格式化类。该类提供的格式和解析数字的接口,NumberFormat也提供了一些方法来确定哪些语言环境具有数值格式,以及它们的名称是什么。
    NumberFormathelps you to format and parse numbers for any locale. Your code can be completely independent of the locale conventions for decimal points, thousands-separators, or even the particular decimal digits used, or whether the number format is even decimal.
    NumberFormat可以帮助你格式和解析任何语言的数字,使代码能够完全独立于小数点、千位分隔符甚至所用特定小数位数的语言环境约定,并与数值格式是否为偶小数无关。


    二、获取Number的实例
    NumberFormat format = NumberFormat.getInstance();


    三、测试代码
    public class TestNumberFormat {
    public static void main(String[] args) {
    testNumberFormatGetInstance();
    System.out.println("----------testNumberFormatDigits------------");
    testNumberFormatDigits();
    System.out.println("-----------testNumberFormatSetRoundingMode-----------");
    testNumberFormatSetRoundingMode();
    System.out.println("-----------testNumberFormatParse-----------");
    testNumberFormatParse();
    private static void testNumberFormatGetInstance() {
    double d = 23323.3323232323;
    System.out.println(NumberFormat.getInstance().format(d));//23,323.332。返回当前缺省语言环境的【缺省数值】格式
    System.out.println(NumberFormat.getCurrencyInstance().format(d));//¥23,323.33。返回当前缺省语言环境的【货币】格式
    System.out.println(NumberFormat.getNumberInstance().format(d));//23,323.332。返回当前缺省语言环境的【通用数值】格式
    System.out.println(NumberFormat.getIntegerInstance().format(d));//23,323。返回当前缺省语言环境的【整数】格式
    System.out.println(NumberFormat.getPercentInstance().format(d));//2,332,333%。返回当前缺省语言环境的【百分比】格式
    private static void testNumberFormatDigits() {
    NumberFormat format = NumberFormat.getInstance();
    format.setParseIntegerOnly(true);//设置数是否应该仅作为整数进行解析。此方法只影响解析,与格式化无关
    format.setMinimumFractionDigits(2);//设置数值的【小数部分】允许的最小位数。这几个方法只影响格式化,与解析无关
    format.setMaximumFractionDigits(3);//设置数值的【小数部分】允许的最大位数
    format.setMinimumIntegerDigits(1);//设置数值的【整数部分】允许的最小位数
    format.setMaximumIntegerDigits(5);//设置数值的【整数部分】允许的最大位数
    System.out.println(format.format(123.1234));//123.123
    System.out.println(format.format(123.1000));//123.10
    System.out.println(format.format(123456789.12345));//56,789.123
    private static void testNumberFormatSetRoundingMode() {
    NumberFormat format = NumberFormat.getInstance();
    format.setMaximumFractionDigits(0);//设置数值的【小数部分】允许的最大位数
    System.out.println("默认模式为:" + format.getRoundingMode().name());//HALF_EVEN
    System.out.println(format.format(5.6));//6。5以上不管是奇数还是偶数,5都舍入
    System.out.println(format.format(5.4));//5。5以下不管是奇数还是偶数,5都舍去
    System.out.println(format.format(1.5));//2。当是5时,若前一位是奇数,5就舍入
    System.out.println(format.format(2.5));//2。当是5时,若前一位是偶数,5就舍去
    format.setRoundingMode(RoundingMode.HALF_UP);//四舍五入。此方法只影响格式化,与解析无关
    System.out.println("当前模式为:" + format.getRoundingMode().name());//HALF_UP
    System.out.println(format.format(5.6));//6
    System.out.println(format.format(5.4));//5
    System.out.println(format.format(1.5));//2
    System.out.println(format.format(2.5));//3
    private static void testNumberFormatParse() {
    NumberFormat format = NumberFormat.getInstance();
    format.setParseIntegerOnly(false);//设置数是否应该仅作为整数进行解析。此方法只影响解析,与格式化无关
    format.setMinimumFractionDigits(2);//这几个方法只影响格式化,与解析无关
    ParsePosition position = new ParsePosition(2);
    try {
    Number number = format.parse("00123.10050100结尾处不受影响");//如果无法解析字符串的【开头】则抛出ParseException
    Number number2 = format.parse("开头00123.10050100结尾处不受影响", position);//解析字符串时,从position.getIndex()处开始解析
    System.out.println(number.floatValue());//123.1005
    System.out.println(number.intValue());//123
    System.out.println(number2.doubleValue());//123.100501
    System.out.println(position.getIndex());//16。解析前,代表解析开始处字符的索引;解析后,代表被解析的最后一个字符后的字符的索引
    System.out.println(position.getErrorIndex());//-1。获取出错时的索引,如果没有设置错误索引,则为 -1
    position.setIndex(1);//如果重用ParsePosition,须重新设置一下Index才可以
    System.out.println(format.parse("12.345678只解析", position).floatValue());//2.345678
    } catch (ParseException e) {
    e.printStackTrace();
    }
    }


    测试参考:https://www.cnblogs.com/baiqiantao/p/6738842.html


    public static void main(String[] args) throws Exception {
    NumberFormat format = new DecimalFormat("###0000");
    String format2 = format.format(123);//0123 在数字累加的时候可以保存数字前面的0 ,方便在一些文件序号等的处理
    }


    文章来源:https://blog.csdn.net/qq_36502826/article/details/86673906

上一篇:tooltip,Tooltip浮动提示框展示效果

下一篇:没有了

相关文章

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部