Java BigDecimal 不用科学计数法输出,去前导零 51Nod 1873
来源:互联网 发布:赣州淘宝培训 编辑:程序博客网 时间:2024/05/10 08:40
Java高精度确实A题利器,但是也需要掌握一定的技巧,尤其控制精度方面,由于大浮点数精度太高就默认用科学计数法表示,这里我们可以略施小计让其不用科学计数法表示并且去掉前导“0.”
stripTrailingZeros() :用于去除末尾多余的0
toPlainString(): 控制不使用科学计数法输出
去掉前导“0.”就相对简单多了,只需要先将高精度浮点数转化为字符串再判断字符串开头即可。
import java.io.BufferedInputStream;import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); BigDecimal a; int b; while(cin.hasNext()) { a = cin.nextBigDecimal(); b = cin.nextInt(); BigDecimal ans = BigDecimal.ONE; while(b != 0) { if(b % 2 == 1) { ans = ans.multiply(a); } a = a.multiply(a); b >>= 1; } String str = ans.stripTrailingZeros().toPlainString(); if(str.startsWith("0.")) { str = str.substring(1, str.length()); } System.out.println(str); } }}
阅读全文
0 0
- Java BigDecimal 不用科学计数法输出,去前导零 51Nod 1873
- Java中如何让bigdecimal不用科学计数法 显示(51Nod 1873 初中的算术)
- 求高精度幂,Java BigDecimal 去前导零和后导零
- Java BigDecimal与科学计数法的问题
- ABAP 去前导零/加前导零
- 科学计数法表示零
- BigDecimal与科学计数法的问题
- BigDecimal与科学计数法的问题
- 使用BigDecimal 将科学计数法变成普通的文本格式输出
- 使用BigDecimal 将科学计数法变成普通的文本格式输出
- 使用BigDecimal 将科学计数法变成普通的文本格式输出
- 使用BigDecimal 将科学计数法变成普通的文本格式输出
- c++ 如何输出大数不用科学计数法 和如何保留几位小数输出
- 避免科学计数法输出
- JAVA 科学计数法
- JAVA科学计数法
- java科学计数法
- java科学计数法
- VS2015动态库编程之MFC规则动态库(上)
- 关于free与malloc的使用
- spring-cloud-starter-feign 组件在spring boot中的应用:访问Oauth2资源服务器的资源接口
- SVN
- lambda 表达式
- Java BigDecimal 不用科学计数法输出,去前导零 51Nod 1873
- mongDao
- c++:使用*号打印三角形
- JS元素中属性的规范使用
- 第六天学习java-数组
- Linux中,texinfo-6.4 编译安装说明
- 工具类TestTools
- STC89C52MCU -- 双机通信及多机通信
- Java语言基础{Java_se(04)}-方法的重载设计(overload)-数组-数组的遍历-多 维数组-排序算法(冒泡排序)-选择排序