12.編寫一個Java項目,定義包,在包下定義包含main方法的類,在main方法中聲明8種基本數據類型的變量並賦值,練習數據類型轉換。


注意;float雖然是4個自減,但是它的取值范圍卻比8個字節的long要大。

float和double只能用來作科學計算或者是工程計算,但在商業計算中我們要用java.math.BigDecimal,通過使用BigDecimal類可以解決上述問題,實例代碼如下:

package ex;

 
import  java.math.*;
 
public  class  BigDecimalDemo {
     public  static  void  main(String[] args){
         System.out.println(ArithUtil.add( 0.01 0.05 ));
         System.out.println(ArithUtil.sub( 1.0 0.42 ));
         System.out.println(ArithUtil.mul( 4.015 100 ));
         System.out.println(ArithUtil.div( 123.3 100 ));
     }
}
 
class  ArithUtil{
     private  static  final  int  DEF_DIV_SCALE= 10 ;
     
     private  ArithUtil(){}
     //相加
     public  static  double  add( double  d1, double  d2){
         BigDecimal b1= new  BigDecimal(Double.toString(d1));
         BigDecimal b2= new  BigDecimal(Double.toString(d2));
         return  b1.add(b2).doubleValue();
         
     }
     //相減
     public  static  double  sub( double  d1, double  d2){
         BigDecimal b1= new  BigDecimal(Double.toString(d1));
         BigDecimal b2= new  BigDecimal(Double.toString(d2));
         return  b1.subtract(b2).doubleValue();
         
     }
     //相乘
     public  static  double  mul( double  d1, double  d2){
         BigDecimal b1= new  BigDecimal(Double.toString(d1));
         BigDecimal b2= new  BigDecimal(Double.toString(d2));
         return  b1.multiply(b2).doubleValue();
         
     }
     //相除
     public  static  double  div( double  d1, double  d2){
 
         return  div(d1,d2,DEF_DIV_SCALE);
         
     }
     
     public  static  double  div( double  d1, double  d2, int  scale){
         if (scale< 0 ){
             throw  new  IllegalArgumentException( "The scale must be a positive integer or zero" );
         }
         BigDecimal b1= new  BigDecimal(Double.toString(d1));
         BigDecimal b2= new  BigDecimal(Double.toString(d2));
         return  b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
         
     }
     
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM