如題,有時候小數太多, Java會讓它以科學符號的方式呈現,不過這種方式有時並不是我們要的樣子,我們是需要完整的紀錄小數阿。

以下提供兩種方式:

第一種方式就是完整的呈現出來,不過最後會有誤差。

第二種方式則是進行四捨五入,取得我們要的數字即可。

以下為程式碼:

 

import java.math.BigDecimal;
import java.math.RoundingMode;
public class test1 
{
		public static void main(String args[])
		{
			//會出現E的情況
			double a = 0.0001;
			a/=3;
			System.out.println("尚未調整小數點的值: "+a);
			
			//不出現E的方法, 使用 BigDecimal類別
			BigDecimal b = new BigDecimal(a);
			String temp = b.toPlainString();
			System.out.println("不出現E的方式: "+temp);
			
			//取一定的小數值,四捨五入
			//setScale函數需要兩個變數, 第一個是取到小數以下第幾位, 第二個則是使用四捨五入還是無條件捨去
			//RoundingMode.HALF_UP 是四捨五入
			b=b.setScale(8, RoundingMode.HALF_UP);
			String temp1 = b.toPlainString();
			System.out.println("不出現E且四捨五入的方式: "+temp1);
		}
}
Output:
尚未調整小數點的值: 3.3333333333333335E-5
不出現E的方式: 0.000033333333333333334930724534128643199437647126615047454833984375
不出現E且四捨五入的方式: 0.00003333
arrow
arrow

    葛瑞斯肯 發表在 痞客邦 留言(0) 人氣()