java在java.math包中提供的API類BigDecimal使碾,用來對超過16位有效位的數(shù)進行精確的運算。雙精度浮點型變量double可以處理16位有效數(shù)。在實際應用中禾嫉,需要對更大或者更小的數(shù)進行運算和處理枚粘。float和double只能用來做科學計算或者是工程計算馅闽,在商業(yè)計算中要用java.math.BigDecimal。BigDecimal所創(chuàng)建的是對象馍迄,我們不能使用傳統(tǒng)的+福也、-、*攀圈、/等算術運算符直接對其對象進行數(shù)學運算暴凑,而必須調用其相對應的方法。方法中的參數(shù)也必須是BigDecimal的對象赘来。構造器是類的特殊方法现喳,專門用來創(chuàng)建對象凯傲,特別是帶有參數(shù)的對象。
1.百科可以查看
http://baike.baidu.com/link?url=yb8C8fR0QoO5E4X196Uo8Unh8jWpG21_Cxwdp47dJQPcIAM3japOgIaeiizCfAQM-Atl7vV6iHeSrv7Rp7yLZRKEZ2vd0a8WOq4jvfHrZtO
2.BigDecimal extends number
我們經常要將數(shù)字進行格式化嗦篱,比如取2位小數(shù)冰单,這是最常見的。Java 提供 DecimalFormat 類灸促,幫你用最快的速度將數(shù)字格式化為你需要的樣子
3.1 DecimalFormat extends NumberFormat extends Format
3.2 importjava.text.DecimalFormat;
publicclassTestNumberFormat{
publicstaticvoidmain(String[]args){
doublepi=3.1415927; //圓周率
//取一位整數(shù)
System.out.println(newDecimalFormat("0").format(pi)); //3
//取一位整數(shù)和兩位小數(shù)
System.out.println(newDecimalFormat("0.00").format(pi)); //3.14
//取兩位整數(shù)和三位小數(shù)诫欠,整數(shù)不足部分以0填補。
System.out.println(new DecimalFormat("00.000").format(pi));// 03.142
//取所有整數(shù)部分
System.out.println(newDecimalFormat("#").format(pi)); //3
//以百分比方式計數(shù)浴栽,并取兩位小數(shù)
System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16%
longc=299792458; //光速
//顯示為科學計數(shù)法荒叼,并取五位小數(shù) System.out.println(newDecimalFormat("#.#####E0").format(c)); //2.99792E8
//顯示為兩位整數(shù)的科學計數(shù)法,并取四位小數(shù) System.out.println(newDecimalFormat("00.####E0").format(c)); //29.9792E7
//每三位以逗號進行分隔典鸡。 System.out.println(newDecimalFormat(",###").format(c)); //299,792,458
//將格式嵌入文本
System.out.println(newDecimalFormat("光速大小為每秒,###米被廓。").format(c));
}
}
3.3 DecimalFormat 類主要靠 # 和 0 兩種占位符號來指定數(shù)字長度。0 表示如果位數(shù)不足則以 0 填充萝玷,# 表示只要有可能就把數(shù)字拉上這個位置嫁乘。上面的例子包含了差不多所有的基本用法,如果你想了解更多间护,請參考 DecimalFormat 類的文檔