POJ 1001 Exponentiation(JAVA,BigDecimal->String)
计算实数a的n次方,具体输出格式看案例
import java.util.*;
import java.math.*; public class Main { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigDecimal a = BigDecimal.ONE;
BigDecimal ans = BigDecimal.ONE;
int n;
while(in.hasNextBigDecimal()) {
a = in.nextBigDecimal();
n = in.nextInt();
ans = BigDecimal.ONE;
while(n!=0) {
ans = ans.multiply(a);
n--;
}
String anss = ans.stripTrailingZeros().toPlainString();
int len=anss.length();
if(anss.charAt(0)=='0') {
for(int i=1;i<len;i++)
System.out.print(anss.charAt(i));
System.out.println();
}
else
System.out.println(anss);
}
}
}
以下转载自:
Java BigDecimal与科学计数法(转String)的问题
BigDecimal是处理高精度的浮点数运算的常用的一个类
当需要将BigDecimal中保存的浮点数值打印出来,特别是在页面上显示的时候,就有可能遇到预想之外的科学技术法表示的问题。
一般直接使用 BigDecimal.toString()方法即可以完成浮点数的打印。
如:
System.out.println( new BigDecimal("10000000000").toString());
但是,toString()方法输出的字符串并不能保证不是科学计数法。
不过在日常的使用中,用toString()方法输出的就是普通的数字字符串而非科学计数法。
直接这么写:
System.out.println( new BigDecimal("100.000").toString());
程序的输出即为: 100.000
如果我们希望去除末尾多余的0,那么我们应该这么写:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toString());
其中,stripTrailingZeros()函数就是用于去除末尾多余的0的,但是此时程序的输出为: 1E+2
是科学计数法,可能并不是我们想要的。
解决的方法很简单,如果想要避免输出科学计数法的字符串,我们要用toPlainString()函数代替toString()。如:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toPlainString());
此时程序的输出就为 100
POJ 1001 Exponentiation(JAVA,BigDecimal->String)的更多相关文章
- Exponentiation(java 大实数)
http://acm.hdu.edu.cn/showproblem.php?pid=1063 Exponentiation Time Limit: 2000/500 MS (Java/Others) ...
- String与Date(java.util.Date)互转(转)
http://yunnick.iteye.com/blog/1074495 一.String与Date(java.util.Date)互转 1.1 String -> Date String d ...
- 《大道至简》第一章——编程的精义_读后感(Java伪代码形式)
<大道至简>第一章——编程的精义_读后感(Java伪代码形式)1.愚公移山//愚公为团体的项目组织者.团体经理.编程人员.技术分析师等//子孙荷担者三人为三名技术人员//遗男为外协//目标 ...
- POJ 3461 Oulipo(乌力波)
POJ 3461 Oulipo(乌力波) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] The French autho ...
- Spring Security4实例(Java config版)——ajax登录,自定义验证
本文源码请看这里 相关文章: Spring Security4实例(Java config 版) -- Remember-Me 首先添加起步依赖(如果不是springboot项目,自行切换为Sprin ...
- JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)
最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢.最近几天研究了下,把自己所有看下来的文档和了解总结一下. 一. 认识JMS 1.概述 对于JMS,百度百科,是这样介绍的:JMS即Java消 ...
- 探秘 Java 热部署三(Java agent agentmain)
前言 让我们继续探秘 Java 热部署.在前文 探秘 Java 热部署二(Java agent premain)中,我们介绍了 Java agent premain.通过在main方法之前通过类似 A ...
- POJ 1001 Exponentiation(大数运算)
POJ 1001 Exponentiation 时限:500 ms 内存限制:10000 K 提交材料共计: 179923 接受: 43369 描述:求得数R( 0.0 < R < ...
- 20155205 《Java程序设计》实验二(Java面向对象程序设计)实验报告
20155205 <Java程序设计>实验二(Java面向对象程序设计)实验报告 一.实验内容及步骤 (一)单元测试 (1)三种代码 举例:我们要在一个MyUtil类中解决一个百分制成绩转 ...
随机推荐
- VBA赋值给指定单元格
这是一个Range对象基本操作实例,对指定单元格赋值,然后使用弹窗获取值. 代码如下: Sub test1() Worksheets( MsgBox "工作表Sheet1内单元格A5中的值为 ...
- 分享C#原生ID(流水号)生成功能实现
///, , )).TotalMilliseconds.ToString(")); /// <summary> /// /// </summ ...
- linux调整分区大小
查看一下当前分区情况 1 2 3 4 5 6 7 8 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mou ...
- node.js的学习
require('http') 内置模块 server.js var http = require('http'); function start(){ server = http.createSer ...
- iOS学习之Object-C语言内存管理高级
一.属性的内存管理
- Client–server model
Client–server model From Wikipedia, the free encyclopedia The client–server model of computing ] Oft ...
- QT 按钮类继承处理带定时器
01.class KeyButton : public QPushButton 02.{ 03. Q_OBJECT 04.public: 05. explicit KeyButto ...
- iOS9新系统下APP Store 应用上传新指南
一 iTunes Connect介绍 iTunes Connect是面向iOS应用开发人员的苹果门户网站,供开发人员管理其应用,跟踪下载情况.今年1月份闹得沸沸扬扬的iTunes Connect BU ...
- win8中如何禁用屏幕旋转的快捷键
程序员通常会使用ctrl+alt+方向键 里编辑代码,特别对于使用eclipse的程序员,更是如此,但是win8却把这一快捷键给占用了,很不爽,如何办,很简单.直接上图: 2.但是发现禁用之后并没有解 ...
- 设计模式之Adapter(适配器模式)
1.出现原因: 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的.(所以可以在他们之间建立一个适配器的中间类) 2.意图: ...