解題思路:
例如 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數組