Java大数中的小数 HDU1753

 1 import java.math.*;
 2 import java.util.*;
 3
 4 public class Main
 5 {
 6     public static void main(String[] args)
 7     {
 8         Scanner cin=new Scanner(System.in);
 9         BigDecimal a;
10         BigDecimal b;
11         while(cin.hasNext())
12         {
13             a=cin.nextBigDecimal();
14             b=cin.nextBigDecimal();
15             a=a.add(b);
16             System.out.println(a.stripTrailingZeros().toPlainString() );
17         }
18     }
19 }

.stripTrailingZeros()  //去掉小数后面多余的0

.toPlainString()        //防止小数以科学计数法的形式输出

时间: 2024-10-09 20:44:16

Java大数中的小数 HDU1753的相关文章

JAVA中的小数

JAVA中的小数称为浮点数 1.有两种类型: float:单精度浮点数.4个字节. double:双精度浮点数.8个字节. 2.类型转换 容量小  ------------------------------->  容量大 byte,short,char << int << long << float << double 容量小的类型会自动向容量大的提升:同时,容量大的向小的转,会发生精度丢失. 如下,整数127赋值给float和double的变量时,

Java中取小数点后两位(四种方法)

摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法) 一 Long是长整型,怎么有小数,是double吧     java.text.DecimalFormat   df=new   java.text.DecimalFormat("#.##");     double   d=3.14159;     System.out.println(df.format(d)); 二 java.math.BigDecimal     B

[转载]java面试中经常会被问到的一些算法的问题

Java面试中经常会被问到的一些算法的问题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也能用开发语言来实现过, 可是很多由于可能在项目开发中应用的比较少,久而久之就很容易被忘记了,在此我分享一下在面试中经常被问到的一些基本的算法,也当做一次知识的巩固. 排序算法的一些特点: * 排序算法的分类如下:* 1.插入排序(直接插入排序.折半插入排序.希尔排序):* 2.交换排序(冒泡泡排序.快速排序):* 3.选择排序(直接选择排序.堆排序):* 4.归并排序:* 5.基数排序.* * 关于

java 大数运算[转]

用JAVA 实现算术表达式(1234324234324 + 8938459043545)/5 + 343434343432.59845 因为JAVA语言中的long 定义的变量值的最大数受到限制,例如123456789987654321这样的整数就不能存放在long类型的变量中,如果这样两个大数相加或相乘,产生的结果会更大.比如,JAVA语言中如果使用long l = 1000000000这样定义没错,但如果加上2000000000变成 1000000000+2000000000测试结果就为-1

UVA10183 - How Many Fibs?(java大数+二分)

UVA10183 - How Many Fibs?(java大数+二分) 题目链接 题目大意:给你a,b,求[a,b]之间有多少个fibs数. 解题思路:虽然a.b很大,但是在10^100内的fibs却不超过500个.这样就可以先把这些fibs保存在数组中,然后每次二分去找a,b的位置,然后就可以得到之间有多少个fibs. 代码: import java.util.*; import java.math.*; import java.io.*; import java.lang.String.*

多校第六场 HDU 4927 JAVA大数类

题目大意:给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1?ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小时,从T到WA,唉--对算组合还是不太了解啊,现在对组合算比较什么了-- import java.io.*; import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Sca

java大数的基本函数

1.读入 Scanner cin=new Scanner(System.in);// 读入 while(cin.hasNextInt()) //等同于!=EOF,第一数一定要输入整形的 { } 大数的一般是: while(cin.hasNextBigInteger())  //第一个数一定要输入大数的 { } while(t-->0)   //等同于while(t--) { } 2.赋值 BigInteger b=BigInteger.valueOf(a); //a可为int,long,stri

ACM-ICPC java(大数)使用总结

今天碰到一道大数除法和模运算的题,以前也写过加减乘的大数模拟运算,但总觉着太麻烦了,今天大体了解了一下Java的输入输出,特来总结一下如何使用java中的高精度类型.首先我们要会建一个简单的java程序(以A+B为例)如下 import java.io.*; import java.util.*; import java.math.*; import java.text.*; public class Main { public static void main(String args[]) {

大数减法(含小数)

正数减法 描述: 两个任意长度的正数相减,这两个正数可以带小数点,也可以是整数,请输出结果.输入的字符串中,不会出现除了数字与小数点以外的其它字符,不会出现多个小数点以及小数点在第一个字符的位置等非法情况,所以考生的程序中无须考虑输入的数值字符串非法的情况. 详细要求以及约束:1.输入均为正数,但输出可能为负数:2.输入输出均为字符串形式:3.如果输出是正数则不需要带符号,如果为负数,则输出的结果字符串需要带负号例如:2.2-1.1 直接输出为"1.1",1.1-2.2 则需要输出为&