我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python3 实现除法结果为整数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python3 实现除法结果为整数

问题描述

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

解决方案

101 // 100

结果图

补充: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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python3 实现除法结果为整数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python3如何实现除法结果为整数

这篇文章主要介绍了python3如何实现除法结果为整数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题描述101/100,想要的结果是1,但是算出来的结果是1.01解决方案
2023-06-14

PHP 精准除法取整数结果

php中除法运算符(/)默认进行浮点除法,若需取商的整数结果,可使用以下方法:floor()函数:向下舍入整数(例:floor(10.5) = 10)ceil()函数:向上舍入整数(例:ceil(10.5) = 11)截断运算符(//):截
PHP 精准除法取整数结果
2024-04-09

c语言怎么让除法结果为小数

在 c 语言中要得到除法小数结果,需要将一个操作数转换为浮点数。方法有两种:1. 使用浮点运算符 /,将整数强制转换为浮点数;2. 将除数或被除数转换为浮点数。如何让 C 语言中的除法结果为小数在 C 语言中,整数除以整数的结果总是整数。
c语言怎么让除法结果为小数
2024-05-13

MySQL怎么实现自动为查询数据结果加序号

这篇文章主要介绍“MySQL怎么实现自动为查询数据结果加序号”,在日常操作中,相信很多人在MySQL怎么实现自动为查询数据结果加序号问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL怎么实现自动为查询数
2023-01-04

Java实现把两个数组合并为一个的方法总结

本文实例讲述了Java实现把两个数组合并为一个的方法。分享给大家供大家参考,具体如下:在Java中,如何把两个String[]合并为一个?看起来是一个很简单的问题。但是如何才能把代码写得高效简洁,却还是值得思考的。这里介绍四种方法,请参考选
2023-05-30

Python实现1-9数组形成的结果为100的所有运算式的示例

问题: 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34?5 + 67?8 + 9 = 100。from functools import
2022-06-04

详解dedecms搜索页面单独调用搜索结果条数的实现方法

DEDE的搜索结果数量都集成在了列表分页标签里,并没有使用单独的函数来提供这个结果数量,因此对有单独调用搜索结果数量的用户来说,就有使用问题,这里提供二次开发的方法。 非常简单只要修改几个地方就行了: 第一步,打开/include/arc.
2022-06-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录