import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Scanner; public class Main { public static void main(String[] args) { // write your code here Scanner sc=new Scanner(System.in); String[] num=sc.nextLine().split("E"); double x=Double.parseDouble(num[0]); double y= Double.parseDouble(num[1]); BigDecimal str; if (x>=0){ str=BigDecimal.valueOf(x*Math.pow(10,y)); }else{ str=BigDecimal.valueOf(-1*Math.abs(x)*Math.pow(10,y)); } System.out.println(str.toPlainString()); } }
通過一個測試點,暈死
package com.company; import java.math.BigDecimal; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); BigDecimal s = sc.nextBigDecimal(); System.out.println(s.toPlainString()); } }
對BigDecimal還是很不熟,原來它僅僅是范圍大,初始的狀態也也還是科學計數法的形式,通過toPlainString方法,將數據轉為String形式,完整展開數據,記住這個方法了,bigDecimal.toPlainString()。
還是一個測試點超時,19分滿意了。