python3 实现除法结果为整数

作者:自由的小白 时间:2023-06-27 20:08:22 

问题描述

101/100,想要的结果是1,但是算出来的结果是1.01

解决方案

101 // 100

结果图

python3 实现除法结果为整数

补充:python2 与 3:一般除法、除法取整、除法取余、精确减法与精确除法

python2

python2除法

python2的除法,与c语言除法类似,两个整数相除结果一定是整数,除数与被除数有一个是浮点数,结果就是浮点数。因此当两个整数相除,结果又有小数时,由于结果是整数,所以小数部分会被省略,针对这种情况,要实现真正的除法,除数与被除数至少有一个应改为浮点数。(貌似python2.7开始,除法和python3除法一样了,没有仔细考究)


a = 3
b = 2
print a/b
print float(a)/b
print a/float(b)
print float(a)/float(b)
# 结果
1
1.5
1.5
1.5

python2除法取整

加一个int(),进行强制类型转换即可。


a = 4.5
b = 3
print a/b
print int(a/b)
# 结果
1.5
1

python2除法取余

利用%操作即可。


a = 5.5
b = 3
print a % b
# 结果
2.5

python3

python3除法

python3的除法就直接使用"/",就可以了,不存在python2的情况


a = 3
b = 2
print(a/b)
# 结果
1.5

python3除法取整


利用"//"操作
a = 5.5
b = 2
print(a//b)
# 结果
2.0

python3除法取余

利用"%"操作


a = 5.5
b = 2
print(a%b)
# 结果
1.5

python3精确减法与精确除法

我们先看看下面的输出


a = 0.9
b = 1
print(b-a)
print((b-a)/100)
print((0.1)/100)
# 结果
0.09999999999999998
0.0009999999999999998
0.001

python计算要把数字先转为二进制,因为浮点数以二进制形式表示时的有穷性(利用乘K取余法,0.9的二进制无限延展),会导致计算误差。下面摘自python文档原话。

On most machines today, floats are approximated using a binary fraction with the numerator using the first 53 bits starting with the most significant bit and with the denominator as a power of two.

这不是只有python才有的bug,也不是你代码的bug,所有的编程语言都会有这个问题,当然可能很多编程语言会使用某些机制来规避这种显示。回到该blog的例子,0.9的二进制表示如下:

0.1110011001100110011001100110011001100110011001100110011

1-0.9的二进制表示为:

0.0001100110011001100110011001100110011001100110011001100

转化过来就是0.09999999999999998

这时候为了实现精确运算,可以使用类decimal。


import decimal
decimal.getcontext().prec = 10 # 取小数点后精度到第10位
a = 0.9
b = 1
print(decimal.Decimal(b)-decimal.Decimal(a))
print((decimal.Decimal(b)-decimal.Decimal(a))/100)
print((0.1)/100)
# 结果
0.1000000000
0.0010000000
0.001

当然,直接使用近似函数round()也是可以的。


a = 0.9
b = 1
print(round(b-a, 10))
print(round((b-a)/100, 10))
print(round((0.1)/100, 10))
# 结果
0.1
0.001
0.001

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://blog.csdn.net/zzzzlei123123123/article/details/97813082

标签:python3,除法,整数
0
投稿

猜你喜欢

  • python3编写ThinkPHP命令执行Getshell的方法

    2023-10-04 14:17:15
  • Python设计模式之状态模式原理与用法详解

    2022-04-16 06:37:36
  • Python自定义装饰器原理与用法实例分析

    2023-01-19 05:12:06
  • Pycharm虚拟环境创建并使用命令行指定库的版本进行安装

    2022-10-24 18:24:40
  • python3.9和pycharm的安装教程并创建简单项目的步骤

    2021-06-18 05:34:16
  • python之PyAutoGui教你做个自动脚本计算器的方法

    2022-01-08 15:24:55
  • python自定义异常实例详解

    2022-09-04 23:33:19
  • 获得MySQL改变字符集的方案

    2010-08-31 14:53:00
  • python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例

    2022-09-27 13:07:54
  • Python实现Event回调机制的方法

    2021-04-10 12:33:29
  • 用python生成1000个txt文件的方法

    2023-03-24 07:51:11
  • 使用python itchat包爬取微信好友头像形成矩形头像集的方法

    2021-02-01 17:54:10
  • 防止网站被采集的理论分析以及十条方法对策第1/2页

    2011-03-29 10:38:00
  • Mysql锁内部实现机制之C源码解析

    2024-01-12 21:13:25
  • 使用JScript遍历Request表单参数集合

    2011-02-26 11:08:00
  • CSS浏览器兼容方案

    2008-06-10 12:21:00
  • 用户如何有效地利用ORACLE数据字典

    2008-03-04 18:19:00
  • php 404错误页面实现代码

    2023-11-15 07:58:31
  • golang的强制类型转换实现

    2024-01-31 03:29:38
  • 浅析JavaScript中的事件机制

    2024-05-03 15:58:38
  • asp之家 网络编程 m.aspxhome.com