您的位置:首页 > 编程语言 > Java开发

java 输出去掉前导的 0 和后面不要的 0

2016-04-23 21:19 633 查看
去掉前导的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());
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: