zoukankan      html  css  js  c++  java
  • Python 浮点数类型的精度问题

    精度损失

    在 Python 中,浮点数表示的精度有限,当我们对大数进行运算时,如果所得的结果是以浮点数表示的,就需要考虑到结果的精度损失问题

    >>> a = 1234567890987654321
    >>> a / 3
    4.115226303292181e+17
    

    所以如果确定所有的计算过程都只需要用到整数的话,我们可以采用 地板除 来代替真除,从而使得除法结果也是整数类型避免精度损失。(注意此时只有运算符两边都是整数类型时,结果才会是整数类型,否则都是浮点数类型)

    >>> a = 1234567890987654321
    >>> a // 3
    411522630329218107
    >>>
    >>> a = 1234567890987654321
    >>> a // 3.0
    4.115226303292181e+17
    >>>
    >>> a = 1234567890987654321
    >>> a // int(3.0)
    411522630329218107
    

    可以看到,浮点数类型的结果相比于整数类型结果而言丢失了最后两位数字!

  • 相关阅读:
    GeoServer发布PostGIS数据库中的栅格数据
    CMD查看端口占用情况
    css选择器命名推荐
    css书写顺序
    css中浮动相关
    动态规划算法
    KMP算法 字符串匹配
    Java 反射
    分治(Divide-and-Conquer(P))算法
    图 结构
  • 原文地址:https://www.cnblogs.com/USTC-manker/p/13585386.html
Copyright © 2011-2022 走看看