`

【转】java.text.DecimalFormat学习笔记(如何按自己的想法保留小数)

    博客分类:
  • java
阅读更多
例子:
import java.text.*;

public class Untitled1    {
   public static void main(String[] args) {

     //---------------------------------------------
     //定义一个数字格式化对象,格式化模板为".##",即保留2位小数.
     DecimalFormat a = new DecimalFormat(".##");
     String s= a.format(333.335);
     System.err.println(s);
     //说明:如果小数点后面不够2位小数,不会补零.参见Rounding小节
     //---------------------------------------------

     //-----------------------------------------------
     //可以在运行时刻用函数applyPattern(String)修改格式模板
     //保留2位小数,如果小数点后面不够2位小数会补零
     a.applyPattern(".00");
     s = a.format(333.3);
     System.err.println(s);
     //------------------------------------------------

     //------------------------------------------------
     //添加千分号
     a.applyPattern(".##\u2030");
     s = a.format(0.78934);
     System.err.println(s);//添加千位符后,小数会进三位并加上千位符
     //------------------------------------------------

     //------------------------------------------------
     //添加百分号
     a.applyPattern("#.##%");
     s = a.format(0.78645);
     System.err.println(s);
     //------------------------------------------------

    //------------------------------------------------
     //添加前、后修饰字符串,记得要用单引号括起来
     a.applyPattern("'这是我的钱$',###.###'美圆'");
     s = a.format(33333443.3333);
     System.err.println(s);
     //------------------------------------------------

      //------------------------------------------------
     //添加货币表示符号(不同的国家,添加的符号不一样
     a.applyPattern("\u00A4");
     s = a.format(34);
     System.err.println(s);
     //------------------------------------------------

     //-----------------------------------------------
     //定义正负数模板,记得要用分号隔开
      a.applyPattern("0.0;'@'-#.0");
      s = a.format(33);
      System.err.println(s);
      s = a.format(-33);
      System.err.println(s);
      //-----------------------------------------------
   
     //综合运用,正负数的不同前后缀
     String pattern="'my moneny'###,###.##'RMB';'ur money'###,###.##'US'";
     a.applyPattern(pattern);
     System.out.println(a.format(1223233.456));
   }
}

总结:
要生成一个DecimalFormat对象,一般只要通过NumberFormat类工厂的getInstance()来取得一个NumberFormat对象再将其转换成DecimalFormat对象,然后通过DecimalForat对象的applyPattern()来动态改变数据的现示格式模板,通过format()方法取得格式化后的数字。同时,DecimalFormat提供了许多的方法来返回格式化后的数字的某一部份,这些方法如:getNegativeSuffix()。这个类的难点主要是在模板的书写及理解上。其实主要的就是针对一个数字的正负形式来设定不同的格式显示。这里要特别注意的是使用在模板上的特殊字符代表有特殊的意义,如下表所示:
Symbol    Description
0    a digit
#    a digit, zero shows as absent
.    placeholder for decimal separator
,    placeholder for grouping separator
E   separates mantissa and exponent for exponential formats
;    separates formats
-    default negative prefix
%    multiply by 100 and show as percentage
?    multiply by 1000 and show as per mille
¤    currency sign; replaced by currency symbol; if doubled, replaced by international currency symbol; if present in a pattern, the monetary decimal separator is used instead of the decimal separator 
X    any other characters can be used in the prefix or suffix
'    used to quote special characters in a prefix or suffix

例如:如果模板中含有#,意思是指这个#号可代表一个或多个数字如果该位的数字是零的话则省略该位。另:注意“#,##0.0#;(#)”这个模板的意思是指数字的负数形式跟正数的一样。
分享到:
评论

相关推荐

    java.text.DecimalFormat类十进制格式化

    Java.text.DecimalFormat类十进制格式化方法详解 Java.text.DecimalFormat类是Java语言中用于格式化十进制数的类,它提供了灵活的格式化方式,能够满足大多数十进制格式化的需求。本文将详细介绍Java.text....

    java.text.DecimalFormat用法详解

    java.text.DecimalFormat用法详解 Java中的java.text.DecimalFormat类提供了格式化数字的功能,通过指定pattern来控制数字的格式。下面将详细介绍DecimalFormat的用法和主要特征。 Pattern DecimalFormat的...

    java 核心API(java.text) 程序例子

    其中,`java.text`包是专门处理文本格式化、国际化和本地化的重要工具集,广泛用于日期、时间、数字、货币、数字格式化等方面。在这个包中,有许多关键的类和接口,例如`Format`、`NumberFormat`、`DateFormat`、`...

    java保留两位小数问题

    ### Java保留两位小数问题详解 在Java编程中,处理数值型数据时,经常会遇到需要对数字进行格式化的需求,尤其是对于浮点数的操作。本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及...

    Java保留两位小数方法大全

    ### Java保留两位小数的方法详解 #### 方法一:使用`BigDecimal` **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则...

    保留2位小数

    在提供的`Float.java`文件中,可能包含了使用`DecimalFormat`处理`float`类型数值的示例代码。 总之,通过`DecimalFormat`类,我们可以方便地对`double`和`float`类型的数据进行格式化,实现保留指定位数小数的功能...

    java运算java运算.doc

    java.text.DecimalFormat df = new java.text.DecimalFormat("#.00"); df.format(你要格式化的数字); ``` 例如: ```java String result = new java.text.DecimalFormat("#.00").format(3.1415926); ``` 方式三:...

    java(小数点,百分号处理)

    本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat`类来处理小数点、百分比等格式的数值。 #### 一、`java.text.DecimalFormat`类 `DecimalFormat`是`NumberFormat`的一个子类,...

    java使double保留两位小数的多方法共2页.pdf

    在Java编程语言中,处理double类型的数值时,我们经常需要将其格式化为保留两位小数的形式,以便于显示和计算。以下是一些在Java中实现这一目标的方法: 1. **使用`DecimalFormat`类**: `DecimalFormat`是`java....

    double类型转换

    在Java中,`java.text.DecimalFormat`类提供了一种非常灵活的方式来格式化数字,包括`double`类型。通过定义特定的模式(pattern),可以精确控制数字的格式,包括小数点后的位数、前导零的存在与否等。 ##### 示例...

    Java中限制小数位数问题

    java.text.DecimalFormat df = new java.text.DecimalFormat("#.00"); String formatted = df.format(3.1415926); ``` 这里的`"#.00"`表示保留两位小数,`#`代表任意位数,而`0`则代表必须显示的位数。如果希望显示...

    java 注册码生存文件

    java 注册码生存文件 public class MyEclipseGen { private static final String LL = "Decompiling this copyrighted software is a violation... java.text.NumberFormat nf = new java.text.DecimalFormat("000");

    JAVA案例 第二篇:针对大数值取整数和小数、保留几位小数、特定位数的数值、自幂数.docx

    import java.text.DecimalFormat; public String roundToDecimal(double number, int decimalPlaces) { DecimalFormat df = new DecimalFormat("#." + String.join("", Collections.nCopies(decimalPlaces, "0")))...

    如何将数字型转换成货币型

    通过本文的学习,你应该能够熟练掌握如何使用Java中的`DecimalFormat`类来进行货币格式化的操作。此外,还介绍了格式模式的详细解释和一些进阶使用技巧,帮助你在实际项目中更加灵活地运用这些知识。

    js四舍五入-保留两位小数

    import java.text.DecimalFormat; public class Main { public static void main(String[] args) { double d = 123.4567; DecimalFormat df = new DecimalFormat("#.00"); String formattedD = df.format(d); ...

    Java指定保留小数位数的方法

    这篇文章将详细介绍Java指定保留小数位数的方法,包括使用String.format方法、DecimalFormat类和BigDecimal类等多种方法。 一、使用String.format方法 String.format方法可以用于格式化字符串,包括保留小数位数。...

    java使double保留两位小数的多方法 java保留两位小数

    在Java编程语言中,处理double类型的数值并保留特定小数位数是一个常见的需求。本文将详细介绍几种在Java中使double类型保留两位小数的方法。 ### 方法一:使用BigDecimal进行四舍五入 `BigDecimal` 类提供了精确...

    java 格式化数字 NumberUtil

    在`NumberUtil.java` 文件中,我们可以预期找到这些方法的实现以及其他可能的辅助方法或工具。文件可能还包含其他格式化选项,如控制小数位数、使用特定货币符号等。 ### 4. 使用 `NumberUtil` 在实际应用中,我们...

    Java中DecimalFormat用法详解

    Java中DecimalFormat用法详解 DecimalFormat是Java中一种重要的格式化工具,主要用于将数字格式化为指定的样式。通过使用DecimalFormat,我们可以将数字转换为各种格式,例如取小数点后几位、科学计数法、百分比...

    java中的技巧.pdf

    创建一个`DecimalFormat`实例,设置所需的格式模式,如`"###,##0.00"`表示保留两位小数。然后使用`format()`方法将一个`double`值转换为字符串。例如,`double d = 12.2112; DecimalFormat df2 = new DecimalFormat...

Global site tag (gtag.js) - Google Analytics