zoukankan      html  css  js  c++  java
  • 找零时刻

    问题:

    用两美元买了1.10美元的东西,问需要找多少零钱

    import java.util.*;
    public class Second{
            public static void main(String[] args){
                    System.out.println(2.00-1.10);
            }
    }

    输出是什么?

    答案:0.8999999999999999

    为什么不是0.90?因为1.10在内存中不能精确存储,因此存了最接近它的一个数,

    import java.util.*;
    public class Second{
            public static void main(String[] args){
                    System.out.printf("%.2f
    ",2.00-1.10);
            }
    }

    输出:0.90

    虽然得到了预期,但是显然并没有解决内存中存储的问题,我们只是在输出层面上解决了问题

    先介绍下BigDecimal

    对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。

    序号

       

    类型

       

    1

    public BigDecimal(double val)

    构造

    将double表示形式转换

    为BigDecimal

    2

    public BigDecimal(int val)

    构造

    将int表示形式转换为

    BigDecimal

    3

    public BigDecimal(String val)

    构造

    将字符串表示

    形式转换为BigDecimal

    4

    public BigDecimal add(BigDecimal augend)

    普通

    加法

    5

    public BigDecimal subtract(BigDecimal
    subtrahend)

    普通

    减法

    6

    public BigDecimal multiply(BigDecimal
    multiplicand)

    普通

    乘法

    7

    public BigDecimal divide(BigDecimal
    divisor)

    普通

    除法

    import java.util.*;
    import java.math.*;
    public class Second{
            public static void main(String[] args){
                    //System.out.println(2.00-1.10);
                    //System.out.printf("%.2f
    ",2.00-1.10);
                    System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));
            }
    }

    需要说明的是需要用字符串构造BigDecimal,否则输出依然是错误的。

  • 相关阅读:
    docker 报错 Error response from daemon: error while validating Root CA Certificate: x509: certificate has expired or is not yet valid
    Python list 与 str 互转
    小程序 url传参 参数值过长 接收时候 内容不全的问题
    es6新增对象字面量语法
    Squid Proxy
    常见开发工具安装方法
    批判世界之前先清理你的房间
    windows的双网卡问题
    SSH
    【逆向】Yara规则编写安装与使用教程
  • 原文地址:https://www.cnblogs.com/qionghua520/p/4370618.html
Copyright © 2011-2022 走看看