`

java格式化

阅读更多

1)   格式化整数(把浮点数转化为整数)
       NumberFormat nf = NumberFormat.getIntegerInstance();
       double v=12.6;
       System.out.println(nf.format(v));
       输出结果13,因为自动舍入的。

2)格式化浮点数(保留两位小数,自动进位,负数也可以)
       方法一:
       DecimalFormat df=new DecimalFormat("#.##");
       double v=12.126;
       String s=df.format(v);
       System.out.println(s);
       输出的结果为:12.13
       方法二:
       double v=-32.126;
       String s=v+"";
       System.out.println(s.substring(0, s.indexOf(".")+3));
       (不推荐使用此方法,因为如果原数不存在小数点或者小数点后只有1为会有异常)

3)   格式化浮点数(变为xx%形式)
       NumberFormat nf = NumberFormat.getPercentInstance();
       double s=0.6145;
       System.out.println(nf.format(s));
       输出61%

 

 

如果我们用下列语句输出一个数

 

System.out.println(123456.789);

 

将会在Console看到输出

 

123456.789

 

那么如何得到123,456.789这种格式化的输出呢?这里就需要用到java.text.Format这个类。不仅是数字,它还提供了货币值和百分数的格式化输出,比如0.58的百分数输出形式是58%。要获得本地的默认格式,可以用下列方法获得

 

NumberFormat.getNumberInstance()


NumberFormat.getCurrencyInstance()


NumberFormat.getOPercentInstance()

 

而要获得某个国家或地区的具体格式,可以使用参数Local.XXX,Locale.GERMANYLocale.UK

 

NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMANY);

 

 

 

 

 

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

public class FormatTest {

    public static void main(String args[]) {

        // 不使用格式化输出数
        double d = 10000.0 / 3.0;
        System.out.println("无格式化输出:" + d);

        // 使用本地默认格式输出数
        NumberFormat numberFormat = NumberFormat.getNumberInstance();
        //numberFormat.setMaximumFractionDigits(4);
        //numberFormat.setMinimumIntegerDigits(6);
        String numberString = numberFormat.format(d);
        System.out.println("本地默认格式输出数:" + numberString);

        // 使用本地默认格式输出货币值
        NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
        System.out.println("本地默认格式输出货币值:" + currencyFormat.format(d));

        // 使用本地默认格式输出百分数
        NumberFormat percentFormat = NumberFormat.getPercentInstance();
        System.out.println("本地默认格式输出百分数:" + percentFormat.format(d));

        // 在不同的国家和地区数字表示的格式也有区别。如德国
        // 使用德国的格式化输出数
        NumberFormat numberFormatG = NumberFormat
                .getNumberInstance(Locale.GERMANY);
        System.out.println("德国数字输出形式:" + numberFormatG.format(d));

        // 使用德国货币输出形式
        NumberFormat currencyFormatG = NumberFormat
                .getCurrencyInstance(Locale.GERMANY);
        System.out.println("德国货币输出形式:" + currencyFormatG.format(d));

        // 使用美国货币输出形式
        NumberFormat currencyFormatA = NumberFormat
                .getCurrencyInstance(Locale.US);
        System.out.println("美国货币输出形式:" + currencyFormatA.format(d));

        // 使用德国百分数输出形式
        NumberFormat percentFormatG = NumberFormat
                .getPercentInstance(Locale.GERMANY);
        System.out.println("德国百分数输出形式:" + percentFormatG.format(d));
        
        System.exit(0);
    }
}

范例


程序输出

 

<!--[if !vml]--><!--[endif]-->

 

由于欧元符号无法在此Console输出,所以显示?

 

可以指定显示的最多(或最少)整数位和小数位。如

 

double d = 10000.0 / 3.0;


NumberFormat numberFormat = NumberFormat.getNumberInstance();


numberFormat.setMaximumFractionDigits(4);


numberFormat.setMinimumIntegerDigits(6);


String numberString = numberFormat.format(d);


System.out.println(numberString);

 

输出:
003,333.3333。整数位不够的补零,小数截去部分四舍五入。

 

 

    也可以利用NumberFormat的一个子类DecimalFormat来指定输出格式。

 

DecimalFormat decimalFormat = new DecimalFormat("######.0000");

String s = decimalFormat.format(d);

 

和前面一样,显示六个整数位和4个小数位。

 

下面对格式化的数字进行解析。

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

public class ParseFormat {

    public static void main(String args[]) {

        // 本地格式的解析
        NumberFormat numberFormat1 = NumberFormat.getNumberInstance();
        Number numb1 = null;
        try {
            numb1 = numberFormat1.parse("33,333.33");
        } catch (ParseException e1) {
            System.err.println(e1);
        }
        System.out.println(numb1);
       
       
        // 以德国格式解析
        NumberFormat numberFormat2 = NumberFormat
                .getNumberInstance(Locale.GERMAN);
        Number numb2 = null;
        try {
            numb2 = numberFormat2.parse("33,333.33");
        } catch (ParseException e2) {
            System.err.println(e2);
        }
        System.out.println(numb2);
       
        System.exit(0);
    }
}

程序输出:
33333.33
33.333

 

 

 

    同样一种格式33,333.33,有人将之理解为33333.33,也有人认为它是33.333,软件国际化的重要性可见一斑

 

分享到:
评论

相关推荐

    Java格式化Xml文件

    总结来说,Java格式化XML文件涉及的主要知识点有:XML解析器的使用,如`DocumentBuilderFactory`和`DocumentBuilder`;`TransformerFactory`和`Transformer`用于XML的转换,包括设置输出属性;以及`Source`和`Result...

    idea统一java格式化xml文件

    idea统一java格式化xml文件

    Java格式化文件模板

    java格式化文件,在myeclipse中点击windows--prefrence--输入code 导入格式化文件

    java格式化模版

    Java格式化模板是Java开发中一个非常重要的工具,它能够帮助开发者按照统一的代码风格进行编程,从而提高代码的可读性和团队协作效率。在Java IDE如Eclipse、IntelliJ IDEA等中,都可以设置自定义的代码格式化模板。...

    eclipse的java格式化

    eclipse的格式化规则xml文件,这个是我根据配置需求自己配置的一个格式化规则,可以在保存时执行这个规则,保证自己的代码看起来比较美观一点

    Eclipse java 格式化模板

    Eclipse里java的格式化模板,下载文件后直接导入到Eclipse即可

    java格式化文件

    Java格式化文件就是解决这个问题的一种方法,它涉及到`formatter`和`code template`两个核心概念。 `formatter`是Java IDE(如Eclipse, IntelliJ IDEA等)中的一个功能,用于自动调整代码的缩进、空格、换行等,以...

    java格式化sql组件 从hibernate中提取出来的

    java格式化sql组件 从hibernate中提取出来的

    java 格式化格式

    java 格式化格式 可以让代码更规范。

    Java Sql 格式化工具

    "Java Sql 格式化工具"是一个专为提升SQL代码可读性和规范性而设计的实用工具,尤其对于那些频繁编写和维护SQL语句的开发者而言,它能显著提高工作效率。本工具基于Sqlplus developer,它提供了一种将混乱无序的SQL...

    Elicpse java 格式化模板

    Elicpse java注释模板和格式化模板

    java格式化编码文件和使用说明

    本主题聚焦于"java格式化编码文件和使用说明",旨在提供一种更高效、更符合团队规范的代码格式化方案。 首先,`Eclipse`作为流行的Java开发集成环境,虽然内置了代码格式化工具,但有时它的默认设置可能并不完全...

    java格式化日期类

    为了方便开发者,Java提供了多种方式来格式化日期,其中最常用的是`java.text.SimpleDateFormat`类。这个工具类允许我们自定义日期和时间的显示格式,避免了重复编写相同的代码。下面将详细介绍如何使用`...

    SQL格式化功能(JAVA代码)

    在给定的标题“SQL格式化功能(JAVA代码)”中,我们聚焦于一个特定的Java实现,它从Hibernate库中抽取了用于SQL格式化的功能,并且不依赖任何第三方jar包。 `Hibernate`是一个流行的Java ORM(对象关系映射)框架...

    Java 格式化输出 printf 例子.zip_moneytzb

    在Java编程语言中,`printf`方法是`PrintStream`类的一个重要成员,它提供了类似于C语言中的格式化输出功能。这个方法允许我们以灵活的方式控制输出内容的格式,包括精度、宽度、对齐方式等。`moneytzb`可能是指特定...

    java 格式代码模板

    在编程世界中,保持代码的一致性和可读性至关重要,这就是`Java`代码格式化和模板工具的作用。本文将深入探讨`Java`代码格式代码模板(code templates)和代码格式化器(code formatter),以及如何利用它们提升开发...

    Java格式化输出.txt

    Java格式化输出.txt

    java 格式化数字 NumberUtil

    在Java编程中,格式化数字是一项常见的任务,用于将数字以特定的样式显示,以便于人类阅读和理解。`NumberUtil` 类很可能就是一个专门用来处理数字格式化的工具类。在这个类中,通常会包含方法来处理小数和整数的...

    Java打印漂亮的SQL语句(被格式化的SQL语句)

    "标签"进一步强调了这个工具的关键特性,包括"Java输出漂亮的SQL语句",这意味着它是一个Java环境下的解决方案,能够集成到Java项目中,通过Java代码来调用和实现SQL语句的格式化。另一个标签"SQL格式化"则明确了它...

Global site tag (gtag.js) - Google Analytics