活死題18:怎樣將小數的整數部分和小數部分分開?

解題思路:
例如 123.45
整數部分是:123
小數部分是:45
1:使用Java的類型轉換 double類型強制轉換爲int類型,直接捨去小數部分。在反過來用原數減去整數部分就可以得到小數部分。
2:使用String類型的split的方法。遇到小數點 “.”就進行分割。得到String類型的數組,包含整數部分和小數部分。

解答:

     //主函數
	public static void main(String[] args) {
		TestNum tn = new TestNum();
		System.out.println(Arrays.toString(tn.function("123.45")));//在函數中調用一下三種方法

	}
	//方法一:
	private String[] function(double num) {
		long zheng = (long)num;
		long xiao = Math.round((num - zheng)*100);//使用數學方法中的round四捨五入,並且乘以100得到小數部分的前兩位
		return new String[] {""+ zheng,String.valueOf(xiao)};
	}
	//方法二:
	private String[] function(String str) {
		String[] num = str.split("\\.");//使用string類的split方法
		return num;
	}
	//方法三:思路與方法一類似,主要區別藉助BigDecimal工具進行減法運算
	private double[] function1(String str) {
		double num = Double.valueOf(str);//將原數轉換爲double類型
		int zheng = (int)num;//利用強制類型轉換得到整數部分
		BigDecimal num2 = new BigDecimal(str);//將原數轉換爲BigDecimal類型
		BigDecimal num3 = new BigDecimal(zheng);//將整數部分轉換爲BigDecimal類型
		double xiao = num2.subtract(num3).doubleValue();//使用BigDecimal類中的減法運算
		double[] change = new double[] {zheng,xiao};//將得到的整數部分和小數部分儲存在change數組中
		return change;
	}

方法一和方法二的結果:獲得的數據類型是string數組
在這裏插入圖片描述
方法三的結果:因爲獲得的數據類型是double數組
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章