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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM