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
    

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

  • 相关阅读:
    【lc-database】595. 大的国家
    Visual Studio 2010软件安装教程
    Win10系统下安装VC6.0教程
    HTTP协议
    正则表达式
    类装饰器
    装饰器工厂函数
    装饰器函数
    闭包
    web服务器
  • 原文地址:https://www.cnblogs.com/USTC-manker/p/13585386.html
Copyright © 2011-2022 走看看