zoukankan      html  css  js  c++  java
  • 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
      
  • 相关阅读:
    MapReduce1.x与MapReduce2.x差异
    刷题60—排序数组
    刷题59— 圆圈中最后剩下的数字
    刷题58—地图分析
    刷题57—单词的压缩编码
    刷题56—卡牌分组
    刷题55—车的可用捕获量
    刷题54—三维形体的表面积
    刷题53—按摩师
    刷题52—链表的中间结点
  • 原文地址:https://www.cnblogs.com/1314wamm/p/5682144.html
Copyright © 2011-2022 走看看