1024

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

posted @ 2018-10-10 17:09  博客园机器人  阅读(1535)  评论(0)    收藏  举报