数字操作

来源:互联网 发布:iphone蓝牙共享网络 编辑:程序博客网 时间:2024/06/03 02:06

1-//保留小数点后两位小数  
  public   double   Number2(double   pDouble)  
  {  
      BigDecimal     bd=new     BigDecimal(pDouble);  
      BigDecimal     bd1=bd.setScale(2,bd.ROUND_HALF_UP);  
      pDouble=bd1.doubleValue();  
      long     ll   =   Double.doubleToLongBits(pDouble);  
       
      return   pDouble;  
  }  

2-//长串数字根据locale加分隔符

  import   java.text.NumberFormat;   
    
  import   java.util.Locale;   
    
  public   class   DecimalFormat1   {  
   
                  public   static   void   main(String   args[])   {  
   
                          //   得到本地的缺省格式  
   
                          NumberFormat   nf1   =   NumberFormat.getInstance();  
   
                          System.out.println(nf1.format(1234.56));  
   
                          //   得到德国的格式  
   
                          NumberFormat   nf2   =  
   
                                  NumberFormat.getInstance(Locale.GERMAN);  
   
                          System.out.println(nf2.format(1234.56));  
   
                  }  
   
          }  
   
  如果你在美国,运行程序后输出:  
   
          1,234.56  
   
          1.234,56  

3-//指定小数部分的位数

import   java.text.DecimalFormat;   
    
import   java.util.Locale;  
   
          public   class   DecimalFormat2   {  
   
                  public   static   void   main(String   args[])   {  
   
                          //   得到本地的缺省格式  
   
                          DecimalFormat   df1   =   new   DecimalFormat("####.000");  
   
                          System.out.println(df1.format(1234.56));  
   
                          //   得到德国的格式  
   
                          Locale.setDefault(Locale.GERMAN);  
   
                          DecimalFormat   df2   =   new   DecimalFormat("####.000");  
   
                          System.out.println(df2.format(1234.56));  
   
                  }  
   
          }  

在这个例子中设置了数字的格式,使用像"####.000"的符号。这个模式意味着在小数点前有四个数字,如果不够就空着,小数点后有三位数字,不足用0补齐。程序的输出:  
   
          1234.560  
   
          1234,560  

4-//输入小数得到百分数 
    
          import   java.text.NumberFormat;  
   
          public   class   DecimalFormat4   {  
   
                  public   static   void   main(String   args[])   {  
   
                          NumberFormat   nf   =   NumberFormat.getPercentInstance();  
   
                          System.out.println(nf.format(0.47));  
   
                  }  
   
          }  
   
  输出:  
   
          47%  

5-//替换科学记数法

        DecimalFormat df = new DecimalFormat("#.00");// 16位整数位,两小数位
        String tempamount = df.format(amount);

       DecimalFormat format = (DecimalFormat) NumberFormat.getPercentInstance();
       format.applyPattern("#####0.00");
       String temp = format.format(Double.MAX_VALUE);

6-DecimalFormat是NumberFormat的一个子类,其实例被指定为特定的地区。因此,你可以使用NumberFormat.getInstance   指定一个地区,然后将结构强制转换为一个DecimalFormat对象。文档中提到这个技术可以在大多情况下适用,但是你需要用try/catch   块包围强制转换以防转换不能正常工作   (大概在非常不明显得情况下使用一个奇异的地区)。下面是一个这样的例子:  
   
          import   java.text.DecimalFormat;  
   
          import   java.text.NumberFormat;  
   
          import   java.util.Locale;  
   
          public   class   DecimalFormat6   {  
   
                  public   static   void   main(String   args[])   {  
   
                          DecimalFormat   df   =   null;  
   
                          //   得到一个NumberFormat   对象并  
   
                          //   强制转换为一个   DecimalFormat   对象  
   
                          try   {  
   
                                  df   =   (DecimalFormat)  
   
                                          NumberFormat.getInstance(Locale.GERMAN);  
   
                          }  
   
                          catch   (ClassCastException   e)   {  
   
                                  System.err.println(e);  
   
                          }  
   
                          //   设置格式模式  
   
                          df.applyPattern("####.00000");  
   
                          //   format   a   number  
   
                          System.out.println(df.format(1234.56));  
   
                  }  
   
          }  
   
     
   
  getInstance()   方法获得格式,然后调用applyPattern()方法设置格式模式,输出:  
   
          1234,56000  
   
  如果你不关心国际化,可以直接使用DecimalFormat   。