`
woxiaoe
  • 浏览: 276974 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java四舍五入 和 数字的格式化

    博客分类:
  • Java
阅读更多
 import java.math.BigDecimal;  
 import java.math.MathContext;  
 import java.math.RoundingMode;  
  
 public class BigDec {  
     public static void main(String[] args){  
         //      四舍五入方法  
        MathContext v = new MathContext(5,RoundingMode.HALF_DOWN);  
        BigDecimal a = new BigDecimal("0.87234643298346",v);  
         System.out.println(a);  
   
           
     }  
   
   }  

 

继承关系: 
java.lang.Object 
      |__ java.text.Format 
             
 |__java.text.NumberFormat 
                      |__ 
java.text.DecimalFormat 
    public class DecimalFormatextends 
NumberFormatDecimalFormat 
是 NumberFormat 
的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它
还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 
($123)。所有这些内容都可以本地化。 

要获取具体语言环境的 NumberFormat(包括默认语言环境),可调用 
NumberFormat 的某个工厂方法,如 getInstance()。通常不直接调用 DecimalFormat 的构造方法,因为 
NumberFormat 的工厂方法可能返回不同于 DecimalFormat 的子类。如果需要自定义格式对象,可执行: 

NumberFormat
 f = NumberFormat.getInstance(loc); 
if (f instanceof DecimalFormat) {
 
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true); 
} 
DecimalFormat
 包含一个模式 和一组符号。可直接使用 applyPattern() 或间接使用 API 方法来设置模式。符号存储在 
DecimalFormatSymbols 对象中。使用 NumberFormat 工厂方法时,可从已本地化的 ResourceBundle 
中读取模式和符号。 


例如:
Java代码
  1. import  java.text.*;  
  2. import  java.util.*;  
  3. public   class  DecimalFormatSample {  
  4.  public   static   void  main(String args[]) {   
  5.   //使用系统默认的格式   
  6.   DecimalFormat myformat1 = new  DecimalFormat( "###,###.0000" );  
  7.   System.out.println(myformat1.format(111111123456.12 ));  
  8.   Locale.setDefault(Locale.US);  
  9.   
  10.   //使用美国的格式   
  11.   DecimalFormat myformat2 = new  DecimalFormat( "###,###.0000" );  
  12.   System.out.println(myformat2.format(111111123456.12 ));  
  13.           
  14.    
  15.   //----------also use applypattern------------------------//   
  16.   DecimalFormat myformat3 = new  DecimalFormat();  
  17.   myformat3.applyPattern("##,###.000" );  
  18.   System.out.println(myformat3.format(11112345.12345 ));  
  19.   
  20.   
  21.   //-----------------控制指数输出 ---------------------------//   
  22.   DecimalFormat myformat4 = new  DecimalFormat();  
  23.   myformat4.applyPattern("0.000E0000" );  
  24.   System.out.println(myformat4.format(10000 ));  
  25.   System.out.println(myformat4.format(12345678.345 ));  
  26.   
  27.   
  28.   //------------------百分数的输出 ---------------------------//   
  29.   /*  DecimalFormat是NumberFormat的一个子类,其实例被指定 为特定的地区。因此,你可以 使用NumberFormat.getInstance   
  30. 指定一个地区,然后将结构强制转换为一个DecimalFormat对象。文档中提到这个技术 可以在大多情况下适用,但 是你需要用  
  31. try/catch 块包围强制 转换以防转换不能正常工作 (大概在非常不明显得情况下使用一个奇异的地区)。    */   
  32.   
  33.   DecimalFormat myformat5 = null ;  
  34.   try {  
  35.       myformat5 = (DecimalFormat)NumberFormat.getPercentInstance();  
  36.   }catch (ClassCastException e)  
  37.   {  
  38.    System.err.println(e);   
  39.   }  
  40.   myformat5.applyPattern("00.0000%" );  
  41.   System.out.println(myformat5.format(0.34567 ));  
  42.   System.out.println(myformat5.format(1.34567 ));  
  43.          
  44.    
  45.  }  

import java.text.*; import java.util.*; public class DecimalFormatSample { public static void main(String args[]) { //使用系统默认的格式 DecimalFormat myformat1 = new DecimalFormat("###,###.0000"); System.out.println(myformat1.format(111111123456.12)); Locale.setDefault(Locale.US); //使用美国的格式 DecimalFormat myformat2 = new DecimalFormat("###,###.0000"); System.out.println(myformat2.format(111111123456.12)); //----------also use applypattern------------------------// DecimalFormat myformat3 = new DecimalFormat(); myformat3.applyPattern("##,###.000"); System.out.println(myformat3.format(11112345.12345)); //-----------------控制指数输出---------------------------// DecimalFormat myformat4 = new DecimalFormat(); myformat4.applyPattern("0.000E0000"); System.out.println(myformat4.format(10000)); System.out.println(myformat4.format(12345678.345)); //------------------百分数的输出---------------------------// /* DecimalFormat是NumberFormat的一个子类,其实例被指定为特定的地区。因此,你可以使用 NumberFormat.getInstance 指定一个地区,然后将结构强制转换为一个DecimalFormat对象。文档中提到这个技术可以在大多情况下适用,但是你需要用 try/catch 块包围强制转换以防转换不能正常工作 (大概在非常不明显得情况下使用一个奇异的地区)。 */ DecimalFormat myformat5 = null; try{ myformat5 = (DecimalFormat)NumberFormat.getPercentInstance(); }catch(ClassCastException e) { System.err.println(e); } myformat5.applyPattern("00.0000%"); System.out.println(myformat5.format(0.34567)); System.out.println(myformat5.format(1.34567)); }

/*---------------------------运行结果------------------------- //
命令:java DecimalFormatSample
结果:
111,111,123,456.1200
111,111,123,456.1200
11,112,345.123
1.000E0004
1.235E0007
34.5670%
134.5670%
*/
}

分享到:
评论

相关推荐

    java 数字格式化程序(不需四舍五入)

    浮点数任意保留数位小数但不需四舍五入小程序

    java面试题大全--java基础,struts,spring,ejb等

    如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列...

    社会上常用的Java试题库

    一、Java基础知识 1.Java有那些基本数据类型,... 如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期

    java常用工具类的使用

    对数字的格式化,在程序处理中也是非常常用的,数字格式化主要对小数点位数,表示的形式(比如:百分数表示)等格式处理。 NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。若要格式化...

    Java的数学运算处理类讲解代码(BigDecimal、Math、Random、DecimalFormat类全部操作方法API)

    这个源码资源是一个讲解数学计算处理类的示例项目,旨在帮助开发者理解和使用Java中的数学计算相关类库。该项目包含详细的代码示例和注释,涵盖了以下...理解DecimalFormat类的功能,包括数字格式化、舍入规则设置等。

    JAVA面试题最全集

    如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何...

    5个javascript的数字格式化函数分享

    十进制四舍五入 这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用: 代码1: 代码如下: function CurrencyFormatted(amount) { var i = parseFloat(amount); if(isNaN(i)) { i = 0.00; } var minus = ...

    Java JDK实例宝典

    3 数字的舍入 3. 4 转换数字的进制 3. 5 生成随机数 3. 6 处理大数字 第4章 数组与集合 4. 1 使用Arrays 4. 2 求质数. 4. 3 动态调整数组长度 4. 4 矩阵 4. 5 ArrayList. ...

    JAVA 范例大全 光盘 资源

    实例43 数字的舍入 98 实例44 转换数字的进制 101 实例45 随机数 103 实例46 Java Applet绘制心形曲线 106 实例47 简单的计算器 107 实例48 日历和日期 118 实例49 Java编制的时钟 121 实例50 简单的日历 124...

    java面试题

    答:Math.round()对数字进行四舍五入 Math.round(11.5)=12 Math.round(-11.5)=11 String s=new String("xyz");创建了几个String Object? 答:创建了两个String对象,一个保存的引用地址,一个保存实际的值。 ...

    整理后java开发全套达内学习笔记(含练习)

    float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位有效数字 注:float 和 double 的小数部分不可能精确,只能近似。 比较小数时,用 double i=0.01; if ( i - 0.01 ) ...

    Java学习笔记-个人整理的

    {5.2.1}将浮点数四舍五入到指定精度}{98}{subsection.5.2.1} {6}Exception}{99}{chapter.6} {6.1}\ttfamily try-catch}{99}{section.6.1} {6.2}\ttfamily finally}{100}{section.6.2} {6.3}\ttfamily throws}{...

    CPPCon2015:CPPCon 2015上提供的“解密浮点数”中的幻灯片和源代码

    1个符号,8个指数,23个分数IEEE双格式-1个符号,11个指数,52个分数有几个舍入选项(Java只允许“四舍五入”) 不要测试是否平等操作顺序很重要计算涉及的数字的相对大小很重要偏好乘法,加法和减法-仅在必要时除法...

    math:接口抽象代数和“不确定数”的概念。 基于此,一些与物理学有关的结构,例如物理数,通过维数分析是不确定数

    该核心模块仅提供一种使用适当的舍入和科学计数法来格式化不确定数字的实现。 1.1。 抽象代数 这个想法是每个“抽象代数”都由两个接口的实现组成。 的扩展之一定义了代数所有元素的属性。 它还应该实现实际的运算...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    JavaScript笔记

    |--x.toFixed(num):可把Number四舍五入为指定小数位数(num:0-20)的数字 |--x.toString():用于把一个 Number 对象转换为一个字符串,并返回结果 19.正则表达式对象:(专门用于查找和验证) reg.test(‘要验证的完整...

    C/C++常用算法手册.秦姣华(有详细书签).rar

    如果读者采用其他编程语言,例如C++、C#、VB、Java等,根据其语法格式进行适当的修改即可。 《C/C++常用算法手册 》主要定位于有一定C/C++语言编程基础、想通过学习算法与数据结构提升编程水平的读者,也可作为...

    易语言程序免安装版下载

    四舍五入()”命令在最高位进位时,会导致程序异常。 17. 修改BUG:办公组件支持库打印进度对话框的标题和用户设置的内容不一致。 18. 修改BUG:办公组件静态编译后无法正常销毁。 19. 修改BUG:应用接口支持库...

Global site tag (gtag.js) - Google Analytics