java 輸出去掉前導的 0 和後面不要的 0
阿新 • • 發佈:2019-02-19
去掉前導的0,即把一個數字小數點前的0去掉。可以將該數字轉換為字串,然後把小數點前的數字與0比較,若為0,去掉。與0比較可用BigDecimal類下的compareTo()方法。去掉後面的0,例如使123.45000變為123.45可用BigDecimal類下的stripTrailingZeros()方法。另外,如果輸出的結果為科學計數法,可用toPlainString()方法改為普通的數字表示。
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNext()){
String str = input.nextLine();
BigDecimal r = new BigDecimal(str.substring(0, 6));
int n;
if(str.charAt(7) == ' '){
n = Integer.valueOf(str.substring(8 , 9));
}else{
n = Integer.valueOf(str.substring(7, 9));
}
BigDecimal temp = r;
for(int i = 0; i < n-1; i++){
temp = temp.multiply(r);
}
String[] arr = temp.toPlainString().split("\\.");
BigDecimal pre = new BigDecimal(arr[0]);
BigDecimal zero = new BigDecimal("0");
if(pre.compareTo(zero) == 0){
System.out.println("."+arr[1]);
}else{
System.out.println(temp.stripTrailingZeros().toPlainString());
}
}
}
}