zoukankan      html  css  js  c++  java
  • 有关Java大浮点数BigDecimal的简单使用[连续更新]

    1. Java大浮点数BigDecimal的精度可以认为是无限的
    2. BigDecimal 里面的pow()的复杂度是快速幂的复杂度log
    3. BigDecimal.pow() 里面的参数是一个整数,
    4. BigDecimal的构造方式和BigInteger 类似
    5. BigDecimal 保留小数的方法比较多,一般情况下下保留到小数点后x(int)位的情况下,可以调用方法setScale
    6. 在多次操作之后,数据的长度可能比较大,所以说运算起来就会减慢速度,所以说可能会导致TLE

    某示例代码如下:

    import java.math.BigDecimal;
    import java.math.BigInteger;
    import java.math.RoundingMode;
    import java.util.Scanner;
    
    public class Main {
        public static int a[] = new int[100007];
        public static BigDecimal b[] = new BigDecimal[100007];
        public static void main(String[] args) {
            Scanner cin =  new Scanner(System.in);
            int n = cin.nextInt();
            for(int i=1;i<=n;i++) a[i] = cin.nextInt();
            BigDecimal e = BigDecimal.valueOf(Math.E);
            BigDecimal sum = BigDecimal.valueOf(0.0);
            for(int i=1;i<=n;i++){
                sum = sum.add(e.pow(a[i]));
            }
      		sum = sum.setScale(10, RoundingMode.HALF_UP);///小数点保留到十位,舍入方式是四舍五入
            for(int i=1;i<=n;i++){
                b[i] = e.pow(a[i]).divide(sum);
            }
            for(int i=1;i<=n;i++){
                System.out.print(b[i].setScale(10));
                if(i != n) System.out.print(" ");
            }
        }
    }
    /**
     5
    
     * **/
    
    
  • 相关阅读:
    php对接微信小程序支付
    微信小程序/网站 上传图片到腾讯云COS
    php+smarty轻松开发微社区/微论坛
    精简商务合同管理系统开发
    MyBatis返回map数据
    MyBatis(五)select返回list数据
    MyBatis(四)多参数处理问题
    MyBatis(三)MyBatis的增删改查
    dbconfig.properties
    MyBatis入门(二)接口式编程
  • 原文地址:https://www.cnblogs.com/PushyTao/p/15459796.html
Copyright © 2011-2022 走看看