hdu1753java(大数相加)---BigDecimal类

大明A+B

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11617 Accepted Submission(s): 4211


Problem Description
话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。

现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
 

 

Input
本题目包含多组测试数据,请处理到文件结束。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
 

 

Output
请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。
 

 

Sample Input
1.1 2.9
1.1111111111
2.3444323343 1 1.1
 

 

Sample Output
4 3.4555434454 2.1
-------------------------------------------------

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
public class Main1753 {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
while(cin.hasNext()){
BigDecimal a=cin.nextBigDecimal();
BigDecimal b=cin.nextBigDecimal();
BigDecimal c=new BigDecimal(0);
c=a.add(b);
String str=c.stripTrailingZeros().toPlainString();//这里采用了先去掉末尾的0然后再转化成字符串输出;
System.out.println(str);
}
}

}

----------------------------------------

java.math.BigDecimal.stripTrailingZeros() 返回一个BigDecimal,它在数值上等于这一个,但表示形式移除所有尾部零。

例如,从BigDecimal值600.0,其中有[BigInteger,精度]组件等于[6000,1],得到6E2使用[BigInteger,精度]组件剥离尾随零等于 [6, -2]

声明

以下是声明java.math.BigDecimal.stripTrailingZeros()方法

public BigDecimal stripTrailingZeros()

参数

  • NA

返回值

此方法返回与移除所有尾部零的数值上相等的BigDecimal

异常

  • NA

例子

下面的例子显示math.BigDecimal.stripTrailingZeros()方法的用法

package com.yiibai;

import java.math.*;

public class BigDecimalDemo {

    public static void main(String[] args) {

        // create 4 BigDecimal objects
        BigDecimal bg1, bg2, bg3, bg4;

        bg1 = new BigDecimal("235.000");
        bg2 = new BigDecimal("23500");

        // assign the result of stripTrailingZeros method to bg3, bg4
        bg3 = bg1.stripTrailingZeros();
        bg4 = bg2.stripTrailingZeros();

	String str1 = bg1 + " after removing trailing zeros " +bg3;
	String str2 = bg2 + " after removing trailing zeros " +bg4;

        // print bg3, bg4 values
        System.out.println( str1 );
        System.out.println( str2 );
    }
}

让我们编译和运行上面的程序,这将产生以下结果:

235.000 after removing trailing zeros 235
23500 after removing trailing zeros 2.35E+4

 

  
posted @ 2016-07-18 17:50  折腾青春  阅读(473)  评论(0编辑  收藏  举报