1. 程式人生 > >java設定小數點後位數

java設定小數點後位數

	static void challenge2() throws IOException {
		double double1;
		double double2;
		double double3;
		double double4;
		String str = new BufferedReader(new InputStreamReader(System.in))
				.readLine();
		double calcu = Double.parseDouble(str);
		// 方案一:
//		double2 = (double) (Math.round(calcu * 10000) / 10000.0);//10000代表小數點後有效位為4位

		// 方案二:
		// DecimalFormat df = new DecimalFormat("#.####");//設定小數點後位數
		// double1 = Double.parseDouble(df.format(calcu));
		
		// 方案三:
		 double3 = Double.parseDouble(String.format("%.4f",calcu));//4代表小數點後有效位數為4位
		// 方案四:
		 BigDecimal bd = new BigDecimal(calcu);
		 BigDecimal bd2 = bd.setScale(4,BigDecimal .ROUND_HALF_UP);//4代表小數點後有效位數為4位
double4 = Double.parseDouble(bd2.toString()); System.out.println( double4); }


以上方法是從別的地方找的,自己做了簡單更改,

以上方法解決設定小數點後尾數多少,並進行最後一位四捨五入演算法

方案1、2失敗,

1、對於 1.12345 進行操作以後,結果為 1.1234 錯誤

對於1.12346進行操作後,結果為1.1235 正確

2、對於0.12345 進行操作以後,失敗

3、4 均成功