zoukankan      html  css  js  c++  java
  • 精确使用浮点数

    在计算机中所有的数字都是使用二进制进行存储的,而二进制无法精确地表示所有的小数,所以使用基本数据类型进行计算时会有误差。

    加法声明:public BigDecimal add(BigDecimal m);

    减法声明:public BigDecimal subtracct(BigDecimal m);

    乘法声明:public BigDecimal multiply(BigDecimal m);

    除法声明:public BigDecimal divide(BigDecimal m)。

     1 public class Yihuo {
     2     
     3     public static void main(String []args) {
     4         double a=2;
     5         double b=1.1;
     6         double c=a-b;
     7         System.out.println("计算结果为");
     8         System.out.println(c);
     9         BigDecimal m=new BigDecimal("2");
    10         BigDecimal n=new BigDecimal("1.1");
    11         BigDecimal k=m.subtract(n);
    12         BigDecimal p=m.add(n);
    13         BigDecimal q=m.multiply(n);
    14         System.out.println("精确计算");
    15         System.out.println("减法");
    16         System.out.println(k);
    17         System.out.println("加法");
    18         System.out.println(p);
    19         System.out.println("乘法");
    20         System.out.println(q);21 }}

    本例中用除法报错:Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

    at java.base/java.math.BigDecimal.divide(BigDecimal.java:1716)
    at Zhen/Hao.Yihuo.main(Yihuo.java:17)

    (注意: 这里m为运算操作数)

    特别注意用除法时,当除不尽时会报错。

  • 相关阅读:
    Win10怎么默认用Windows照片查看程序打开图片
    Class类文件结构——访问标志
    栈的压入弹出序列
    Java中length,length()以及size()的区别
    包含min函数的栈
    extends和implements的区别
    顺时针打印矩阵
    二叉树的镜像
    Class类文件结构解读——常量池
    进制、字(word)、字节(byte)、位(bit)的关系
  • 原文地址:https://www.cnblogs.com/mianyang0902/p/10701980.html
Copyright © 2011-2022 走看看