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分满意了。