题目

计算实数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)的更多相关文章

  1. Exponentiation(java 大实数)

    http://acm.hdu.edu.cn/showproblem.php?pid=1063 Exponentiation Time Limit: 2000/500 MS (Java/Others)  ...

  2. String与Date(java.util.Date)互转(转)

    http://yunnick.iteye.com/blog/1074495 一.String与Date(java.util.Date)互转 1.1 String -> Date String d ...

  3. 《大道至简》第一章——编程的精义_读后感(Java伪代码形式)

    <大道至简>第一章——编程的精义_读后感(Java伪代码形式)1.愚公移山//愚公为团体的项目组织者.团体经理.编程人员.技术分析师等//子孙荷担者三人为三名技术人员//遗男为外协//目标 ...

  4. POJ 3461 Oulipo(乌力波)

    POJ 3461 Oulipo(乌力波) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] The French autho ...

  5. Spring Security4实例(Java config版)——ajax登录,自定义验证

    本文源码请看这里 相关文章: Spring Security4实例(Java config 版) -- Remember-Me 首先添加起步依赖(如果不是springboot项目,自行切换为Sprin ...

  6. JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)

    最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢.最近几天研究了下,把自己所有看下来的文档和了解总结一下. 一. 认识JMS 1.概述 对于JMS,百度百科,是这样介绍的:JMS即Java消 ...

  7. 探秘 Java 热部署三(Java agent agentmain)

    前言 让我们继续探秘 Java 热部署.在前文 探秘 Java 热部署二(Java agent premain)中,我们介绍了 Java agent premain.通过在main方法之前通过类似 A ...

  8. POJ 1001 Exponentiation(大数运算)

    POJ 1001 Exponentiation 时限:500 ms   内存限制:10000 K 提交材料共计: 179923   接受: 43369 描述:求得数R( 0.0 < R < ...

  9. 20155205 《Java程序设计》实验二(Java面向对象程序设计)实验报告

    20155205 <Java程序设计>实验二(Java面向对象程序设计)实验报告 一.实验内容及步骤 (一)单元测试 (1)三种代码 举例:我们要在一个MyUtil类中解决一个百分制成绩转 ...

随机推荐

  1. AlertDialog.Builder对话框类的用法

    1.在测试时,如何实现一个提示 可以使用 Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show(); //从资源文件str ...

  2. js-提前声明和new操作符理解

    1.提前声明:声明变量后,js会把声明部分提前到作用域前面. var a=1; function aheadOfStatement(){ alert(a); var a=2; } 这段代码结果是und ...

  3. uninstall 11.2.0.3.0 grid & database in linux 5.7

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  4. chattr 与 lsattr 命令详解

    PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的li ...

  5. ORACLE SQL TUNING ADVISOR 使用方法

    sql tunning advisor 使用的主要步骤: 1 建立tunning task 2 执行task 3 显示tunning 结果 4 根据建议来运行相应的调优方法  下面来按照这个顺序来实施 ...

  6. 初识java之Mina(一)

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于 TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供 JAVA 对象的序列化服务.虚拟机管道通信服务等) ...

  7. 007--VS2013 C++ 显示位图半透明化

    以后所有图片都放在根目录下: 如有另放,会特别注明 //全局变量HBITMAP bg,girl;HDC mdc; //起始坐标const int xstart = 50;const int ystar ...

  8. 网页设计师必备的10个CSS技巧

    CSS是网页设计师的基础,对CSS的了解能使他们能够设计出更加美观别致的网页.使用CSS技巧来巧妙地处理CSS是非常令设计师着迷的事情.在CSS的深海世界里有很多有意思的东西,你只需要找到最适合你的就 ...

  9. C++中的const关键字的用法

    1.const用于修饰普通变量,表示常量,不建议修改,某种程度上不允许修改(其实也是可以修改的) 指针常量 :指针(指向的变量的值)自身是一个常量,说明不能改变自身的指向  int* const p= ...

  10. 团队开发——SCRUM报告(一)

    一.成员介绍 队长:胡亚宝 PM:曹美娜 成员:焦燕.袁亚姣.黄亚萍 二.sprint会议 由于之前是一五一小长假,所以距离上次会议中间隔了很长时间,这里在对上次会议做一下简单的汇总 在上次会议上我们 ...