zoukankan      html  css  js  c++  java
  • java 14 -6 BigInteger和BigDecimal

    BigInteger:可以让超过Integer范围内的数据进行运算

      构造方法:
        BigInteger(String val)

     1 import java.math.BigInteger;
     2 public class BigIntegerDemo {
     3 public static void main(String[] args) {
     4 // 这几个测试,是为了简单超过int范围内,Integer就不能再表示,所以就更谈不上计算了。
     5 // Integer i = new Integer(100);
     6 // System.out.println(i);
     7 // // System.out.println(Integer.MAX_VALUE);
     8 // Integer ii = new Integer("2147483647");
     9 // System.out.println(ii);
    10 // // NumberFormatException 这个字符已经超出了int的范围
    11 // Integer iii = new Integer("2147483648");
    12 // System.out.println(iii);
    13 
    14 // 通过大整数来创建对象
    15 BigInteger bi = new BigInteger("2147483648");
    16 System.out.println("bi:" + bi);
    17 }
    18 }

      由于在运算的时候,float类型和double很容易丢失精度,演示案例。
        所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

      BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。
        构造方法:
        public BigDecimal(String val)

      1、public BigDecimal add(BigDecimal augend) 加
      2、public BigDecimal subtract(BigDecimal subtrahend) 减
      3、public BigDecimal multiply(BigDecimal multiplicand) 乘
      4、public BigDecimal divide(BigDecimal divisor) 除
      5、public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取
          divisor - 此 BigDecimal 要除以的值。
          scale - 要返回的 BigDecimal 商的标度。
          roundingMode - 要应用的舍入模式。
        经常用ROUND_HALF_UP,向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式

     1 import java.math.BigDecimal;
     2 public class BigDecimalDemo {
     3 public static void main(String[] args) {
     4 //在运算的时候,float类型和double很容易丢失精度,演示案例。
     5 // System.out.println(0.09 + 0.01); 0.09999999999999999
     6 // System.out.println(1.0 - 0.32); 0.6799999999999999
     7 // System.out.println(1.015 * 100); 101.49999999999999
     8 // System.out.println(1.301 / 100); 0.013009999999999999
     9 
    10 //为了能精确的表示、计算浮点数,Java提供了BigDecimal
    11 BigDecimal bd1 = new BigDecimal("0.09");
    12 BigDecimal bd2 = new BigDecimal("0.01");
    13 System.out.println("add:" + bd1.add(bd2));
    14 System.out.println("-------------------");
    15 
    16 BigDecimal bd3 = new BigDecimal("1.0");
    17 BigDecimal bd4 = new BigDecimal("0.32");
    18 System.out.println("subtract:" + bd3.subtract(bd4));
    19 System.out.println("-------------------");
    20 
    21 BigDecimal bd5 = new BigDecimal("1.015");
    22 BigDecimal bd6 = new BigDecimal("100");
    23 System.out.println("multiply:" + bd5.multiply(bd6));
    24 System.out.println("-------------------");
    25 
    26 BigDecimal bd7 = new BigDecimal("1.301");
    27 BigDecimal bd8 = new BigDecimal("100");
    28 System.out.println("divide:" + bd7.divide(bd8));//divide:0.01301
    29 System.out.println("divide:"
    30 + bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));//divide:0.013
    31 System.out.println("divide:"
    32 + bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP)); //divide:0.01301000
    33 }
    34 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    阿里云oss怎么上传文件夹
    HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法
    让富文本编辑器支持复制doc中多张图片直接粘贴上传
    CSDN-markdown 文字样式设置(字体, 大小, 颜色, 高亮底色)
    网络编程基础知识点
    inet_addr 和inet_ntoa函数作用
    sockaddr和sockaddr_in的区别
    简析TCP的三次握手与四次分手
    TCP三次握手和四次挥手原理分析
    htons(), ntohl(), ntohs(),htons() 函数功能
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5886503.html
Copyright © 2011-2022 走看看