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()); } } } }
相关文章推荐
- Java-Struts2:Can not access a member of class with modifiers "public"
- 创建struts2支持的第一个应用(二)
- 用MyEclipse编验证码(1)
- Eclipse中如何clean项目以及clean的作用
- java NIO
- eclipse中pydev开发报错:Project interpreter not specified
- Heap Memory vs Stack Memory
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- JAVA设计模式之享元模式
- JAVA——运行时异常(RuntimeException)
- java 基础题 信号报告
- Java String charAt()方法
- Spring学习之第一个hello world程序
- Java RMI(远程方法调用)开发
- 《struts2更改后缀》
- 使用JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换
- 【结构型模式】适配器(adapter)模式之23种java设计模式
- java中this关键字的用法
- java学习重点
- Java OOP 思想