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
    
     * **/
    
    
  • 相关阅读:
    Java基础之抽象类和多态
    Java基础之继承重载重写与this和super
    Java基础之StringBuffer的使用
    Java基础之String的方法与常量池
    Spring Boot之JSP开发
    Spring Boot之thymeleaf中替换th:each使用
    本周进度
    问卷调查立题报告(三人行)
    本周进度(复习软考)
    软件需求十步走之阅读笔记02
  • 原文地址:https://www.cnblogs.com/PushyTao/p/15459796.html
Copyright © 2011-2022 走看看